Generalize for non-author users: derived defaults, owner naming, docker engine, zero-config previews, README #134
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/generalize-for-new-users"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Makes sweatshop runnable by someone other than its author — no GLM subscription, a different name, and a local Docker engine (OrbStack on macOS) instead of podman on a remote server.
Defaults without GLM (4): built-in default routes now derive from which provider keys exist (glm > openrouter > gloo; none → glm so validation reports the missing key clearly).
SWEATSHOP_DEFAULT_PROVIDER+SWEATSHOP_DEFAULT_MODEL(both required) override; verifiedopenai/gpt-5.6-solis live on OpenRouter. Full test matrix included.Owner naming (5):
SWEATSHOP_OWNER_NAME(default "Chad" — your deployment unchanged) interpolates into instructions, tool descriptions, result strings, and skills.ask_chaditself is NOT renamed; code comments and docs/NNNN history untouched.Zero-config previews (1): base domain falls back to
previews.localhostinstead ofinternal.crussell.io; scheme defaultshttponly on that fallback (no wildcard cert locally),httpswith a realPREVIEW_BASE_DOMAIN,PREVIEW_URL_SCHEMEoverrides both.Engine-agnostic runtime (10–12):
devwrapper takesCONTAINER_ENGINE=auto|podman|docker(auto prefers podman — your flow unchanged) with per-engine socket probing (OrbStack/colima/Docker Desktop), docker-portable existence checks, bash-3.2-safe arrays (stock macOS), optionalDEV_PUBLISHport publishing for the all-local mode, and a loud error on a set-but-missingDOCKER_SOCK.SWEATSHOP_SANDBOX_IMAGEoverrides the default sandbox image.Docs & misc (2, 3, 6–9): new README (requirements, the one-engine rule, all-local vs all-on-one-box topologies, quickstart with
DEV_PUBLISH, provider/harness matrix, security posture);.env.examplerewritten for fresh installs (all three provider keys, git-credentials-in-sqlite reality, new vars, dropped unreadPI_MODEL); generic forgejo tool description; OpenRouter referer viaSWEATSHOP_PUBLIC_ORIGIN; generic host-form placeholders.⚠️ Deployment note (review finding 6): two silent behavior changes unless bee's env sets them — preview base default is now
previews.localhost(setPREVIEW_BASE_DOMAIN=internal.crussell.ioto keep today's URLs) and the OpenRouter referer defaults tohttp://localhost:3000(setSWEATSHOP_PUBLIC_ORIGINto keep the current value).Process: pi implemented the bulk (two calls), I wrote the README/placeholders and landed the review fixes; a fresh-eyes review child found 3 blockers (docker-incompatible
devsubcommands, macOS bash-3.2 crash, unreachable all-local quickstart) — all fixed, all should-fixes and nits addressed. Gate at HEAD: typecheck clean, lint 0 errors (2 pre-existing warnings), 863 passed / 16 skipped. 17 commits.The description hardcoded the author's instance ("Chad's self-hosted instance (git.crussell.io)") and a personal repo path example. Name no person and no host: "the configured forgejo instance" with the owner's stored credentials; {owner}/{repo} placeholders in the example.- image/network existence via inspect (docker has no image/network exists subcommands; the engine-docker path died on first command) - ${ARR[@]+...} guards: macOS stock bash 3.2 + set -u treats an empty array expansion as unbound (./dev install before .env.local exists) - DEV_PUBLISH: optional -p pairs for the all-local mode; default still publishes nothing (the membership-is-the-boundary rule) README: key-first quickstart order, DEV_PUBLISH in the quickstart and previews section (the wrapper never publishes by default).