Skip to content

feat(cli): newt web — launcher for the workspace-excluded HTMX cockpit (successor to #1550) - #1551

Merged
hartsock merged 1 commit into
mainfrom
feat/newt-web-command
Aug 6, 2026
Merged

feat(cli): newt web — launcher for the workspace-excluded HTMX cockpit (successor to #1550)#1551
hartsock merged 1 commit into
mainfrom
feat/newt-web-command

Conversation

@hartsock

@hartsock hartsock commented Aug 6, 2026

Copy link
Copy Markdown
Member

What this PR does

Successor to #1550, which GitHub auto-marked "merged" when a base-branch push briefly made its head an ancestor of its base — its commit never actually reached main (merged PRs cannot reopen). Same single commit, rebuilt onto the merged #1549: the newt web find-and-spawn launcher honoring decision D1 (docs/decisions/newt_web_htmx.mdnewt-web stays workspace-excluded, no dependency edge). Resolves $NEWT_WEB_BINnewt-web beside the running binary → PATH; passes args through; propagates exit codes; actionable not-found error. Plus just install-web (clean-inode + macOS ad-hoc re-sign, honor-configured-target-dir) and the README web-cockpit snippet.

Test plan

Pure resolver unit tests (precedence, blank/missing candidates, injected-fs seam, message contract) + assert_cmd process tests (argv passthrough via stub binary, exit-code propagation, not-found message with PATH emptied). Clippy -D warnings clean; newt-web compile-checked against the new newt-core.

Out of scope

Installing newt-web in plain just install; changes to newt-web itself; a /web slash command.

🤖 Generated with Claude Code


Note

Low Risk
Process launcher and install recipe only; no changes to agent authority, inference, or the newt-web crate itself. Risk is limited to local binary discovery and spawn behavior, covered by unit and CLI integration tests.

Overview
Adds newt web, a find-and-spawn launcher for the workspace-excluded newt-web HTMX cockpit (decision D1 — no axum/sanitizer edge into the agent workspace). Resolution order: $NEWT_WEB_BIN, then newt-web beside the running newt binary, then PATH; trailing args pass through and child exit codes propagate, with a single actionable error when nothing is found.

just install-web builds newt-web from its own manifest and installs ~/bin/newt-web using the same clean-inode + macOS ad-hoc re-sign pattern as just install. The README quick start documents just install-web and newt web (default 127.0.0.1:8880).

Reviewed by Cursor Bugbot for commit 25c0226. Bugbot is set up for automated code reviews on this repo. Configure here.

newt-web stays a workspace-EXCLUDED crate (decision D1 in
docs/decisions/newt_web_htmx.md — its axum/sanitizer tree never enters
the agent graph), so `newt web` is a pure process launcher: resolve
$NEWT_WEB_BIN → a `newt-web` beside the running binary → PATH, spawn
with args passed through, propagate the exit code, and fail with an
actionable message naming every escape hatch when nothing is found.

`just install-web` builds the crate with its own manifest (target dir
resolved the honor-configured-target-dir way _place-binaries does) and
places ~/bin/newt-web with the same clean-inode + macOS ad-hoc re-sign
discipline. README gains the web-cockpit snippet under Quick start.

Resolver is pure (injected fs seam) with unit tests; assert_cmd tests
prove argv passthrough via a stub binary, exit-code propagation, and
the not-found message. newt-web itself compile-checked against the
new newt-core (it picks up the kind="anthropic" form parse).

Co-authored-by: Claude Fable 5 <[email protected]>
@cursor

cursor Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_2807555a-f753-4684-88d4-edcdd8681b09)

@hartsock
hartsock merged commit 096f9d8 into main Aug 6, 2026
16 of 18 checks passed
@hartsock
hartsock deleted the feat/newt-web-command branch August 6, 2026 14:53
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