Version 0.4.28 · Published to npm. Scaffold with bun create broapp my-app. View on npm

Broapp
GitHub

Publishing

Nothing in this repository publishes anything automatically. This page lists what a maintainer has to do, and what they have to decide.

Status

Published on npm from the Publish to npm workflow, each with provenance: broapp at Publish to npm.broapp-ai-compatible., create-broapp and broapp-ai-anthropic at Publish to npm.broapp-ai-compatible.broapp, broapp-ai-compatible at Publish to npm.broapp-ai-compatible.create-broapp, broapp-ai-elements at Publish to npm.broapp-ai-compatible., and broapp-autoapp at Publish to npm.broapp-ai-anthropic. (--). Earlier: Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. and the core at Publish to npm.broapp-ai-compatible. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. and the panel at Publish to npm.broapp-ai-compatible. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic., the core and the panel at Publish to npm.broapp-ai-compatible. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic., the core and the panel at Publish to npm.broapp-ai-compatible. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic., the core and the panel at Publish to npm.broapp-ai-compatible.broapp-ai-compatible and broapp-ai-compatible at Publish to npm.broapp-ai-compatible.create-broapp (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. and the core at Publish to npm.broapp-ai-compatible.broapp-autoapp (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. and the core at Publish to npm.broapp-ai-compatible.broapp-ai-elements (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. and the core at Publish to npm.broapp-ai-compatible.broapp-ai-compatible (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. (--), Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic., Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic. and the panel at Publish to npm.broapp-ai-compatible.broapp-ai-elements, Publish to npm.broapp-ai-compatible. with the launcher at Publish to npm.broapp-ai-anthropic.broapp-ai-compatible and the panel at Publish to npm.broapp-ai-compatible.broapp-ai-compatible, Publish to npm.broapp-ai-compatible.broapp-ai-compatible with the launcher at Publish to npm.broapp-ai-anthropic.broapp-autoapp, Publish to npm.broapp-ai-compatible.broapp-autoapp with the launcher at Publish to npm.broapp-ai-anthropic.broapp-ai-elements and the panel at Publish to npm.broapp-ai-compatible.broapp-ai-anthropic, Publish to npm.broapp-ai-compatible.broapp-ai-elements with the launcher at Publish to npm.broapp-ai-anthropic.broapp-ai-compatible, Publish to npm.broapp-ai-compatible.broapp-ai-compatible with Publish to npm.broapp-ai-anthropic.broapp-ai-anthropic, Publish to npm.broapp-ai-compatible.broapp-ai-anthropic with the launcher at Publish to npm.broapp-ai-anthropic.create-broapp and the panel at Publish to npm.broapp-ai-compatible.create-broapp, then Publish to npm.broapp-ai-compatible.create-broapp with Publish to npm.broapp-ai-anthropic.broapp, Publish to npm.broapp-ai-compatible.broapp with Publish to npm.broapp-ai-anthropic.Publish to npm, and Publish to npm.broapp-ai-compatible.Publish to npm with Publish to npm.create-broapp.Publish to npm, all on --; Publish to npm.broapp-ai-anthropic.Publish to npm on --; Publish to npm.create-broapp.Publish to npm and Publish to npm.broapp.Publish to npm before that. To generate from an unreleased checkout instead, see troubleshooting.md.

Repository release vmacos-latest.launch. ships the launcher binaries built from the same commit; it moves the core and the launcher: every macOS binary is signed ad hoc on a Mac and verified, because macOS on Apple silicon kills the unverifiable signature Bun broapp.launch.macos-latest leaves, and both macOS launchers are built on macos-latest with the Apple silicon one smoke-tested as shipped. vmacos-latest.launch. before it moved the core and the launcher: broapp requires Brobridge macos-latest.external.external, whose session cookie is named for the server's port, so the panel, a preview and every application on the host no longer evict each other's cookie and a reloaded tab is served. vmacos-latest.launch. before it moved the launcher only: a build refuses an acceptance step on an external route and an external route with no capability, a plan refuses a criterion only the activated application could show, and working without asking covers the engineer's web tools. vmacos-latest.launch. before it moved the launcher only: every Open of an application asks the child for a fresh single-use launch address over a new launch IPC message, instead of sending a second Open to the bare origin whose session cookie another broapp server on the host may have replaced. vmacos-latest.launch. before it moved the launcher only: a view source or action that passes an input to an operation declared s.void() is refused at build time, the page sends nothing for an empty input on such a route, a candidate that served once and was replaced is never offered as ready to activate, and the engineer can search the web and read a page, each call approved first. vmacos-latest.launch. before it moved two packages: the AI panel, whose prompt bar pins each piece to its grid cell with the box at the left and every control at the right; and the launcher, whose page is rebuilt on it and whose applications table puts a row's three buttons side by side under it. vmacos-latest.launch. before it moved three packages: the core, whose createAi gains an optional standIn that answers a chat turn's question before anybody is asked (additive, so a patch); the AI panel, whose approval card can offer a third answer; and the launcher, whose Work without asking switch gives the engineer's conversations a standing approval for edits, builds and previews, and whose Overview leads with the applications. vmacos-latest.launch. before it moved the launcher only: each application has an icon, and a removed application's failed tasks no longer need the person. vmacos-latest.launch. before it moved the launcher only: a person chooses the folder an application's source workspace is made in, from the form's folder window or with create --at, and a workspace that later goes missing is said in a sentence, never recreated, and found again with Locate. vmacos-latest.launch.broapp-autoapp@^0.3.27 before it moved three packages: the core, whose model list gives each provider five seconds, keeps the list a provider gave last and gains ai.modelsRefresh (additive, so a patch); the AI panel, whose picker marks a list listed earlier; and the launcher, which depends on both. vmacos-latest.launch.broapp@^0.4.9 before it moved four packages: the core, which keeps settings for every provider and resolves a model written <provider>:<model> (additive, so a patch); broapp-ai-compatible, for the OpenRouter preset; the AI panel, whose model picker groups by provider and says where each model runs; and the launcher, which depended on all three. vmacos-latest.launch.>=0.4.10 before it moved two packages: the core, whose settings panel now dresses every control itself and follows the renderer's control tokens (markup and styles only, so a patch); and the launcher, which depends on it, for one header on every panel over the page and a Settings drawn as flat sections. vmacos-latest.launch.broapp-autoapp@^<the launcher's version> before it moved two packages: the core, which reports a running turn's usage as each step ends and names the model a turn ran on when it ends (both additive, so a patch); and the launcher, which depends on it, for the Overview screen, a usage row for every turn, prices the person writes, alerts with sound, and a preview that says why it did not start. vmacos-latest.launch.runId before it moved two packages: the core, whose turn now reports the usage of the steps it completed when it is cut short and gives the next turn the newest calls of a turn too long to expand whole (both additive, so a patch); and the launcher, which depends on it, for examples that can say a kind and a refusal, activation that runs them on a throwaway copy, a closed step schema, finished examples held by hash, and a turn ended at its fourth identical refusal. vmacos-latest.launch.status before it moved only the launcher, for a Backlog panel redrawn wider. vmacos-latest.launch.stop before it moved only the launcher, for a failed task that says which tool calls were refused and for stop, status and Quit. vmacos-latest.launch.broapp-ai-compatible before it moved three packages: the core, whose in-process turn may defer a question to somebody else and which takes Brobridge macos-latest.external.external for more than one launch address; the AI panel, which reports when a turn is running; and the launcher, which depends on both, for the backlog. vmacos-latest.launch.<provider>:<model> before it moved only the launcher, for the Knowledge panel. vmacos-latest.launch.listed earlier before it moved only the launcher, for the log in its tab. vmacos-latest.launch.ai.modelsRefresh moved the AI panel, whose transport now puts a step's question on its call's card instead of cancelling the turn, and the launcher, which depends on it. vmacos-latest.launch.create --at moved the core, for the per-run transcript and the optional runId on a history turn (additive, so a patch), the AI panel, which names the run, and the launcher. vmacos-latest.launch.standIn moved only the launcher: the apps directory listing ignores stray files, an unanswered question is reported as expired, and a strip shows while one waits. vmacos-latest.launch.createAi moved the AI panel, for the running mark that stays the whole turn, and the launcher, which depends on it and whose engineer stops walking lesson ids. vmacos-latest.launch.s.void() moved only the launcher, for removal, the blank template and the design topic; vmacos-latest.launch.launch only the launcher, for its banner; vmacos-latest.launch.external moved two packages: the launcher, because a created application installs broapp-autoapp@^<the launcher's version> and macos-latest.external.external carries the theme contract its starter now relies on; and the AI panel, because its portalled components and its corner radius were fixed. The launcher's peer range on the panel is >=0.4.10. A created application installs broapp@^0.4.9 and broapp-autoapp@^0.3.27.

Before publishing

  1. bun run check — typecheck and the full suite.
  2. bun run dryrun — packs both packages, generates a project outside the

workspace from the tarballs, installs, typechecks, builds an executable, and runs it from an unrelated directory. This is the check that catches a package that works from the monorepo and not from npm.

  1. Decide the version. Both packages share one, and create-broapp writes

^<its own version> as the generated project's broapp dependency — so a create-broapp published ahead of a matching broapp generates projects that cannot install.

Steps requiring human authorisation

These are the things a person has to do. None of them happen from a push.

Bump the version. The names are claimed; a version that already exists cannot be published again, and cannot be republished after an unpublish. Raise the version in all four package.json files, in VERSION in packages/create-broapp/src/main.ts, and in skills/broapp/SKILL.md before running the workflow. The provider packages declare a broapp peer range; raise it whenever they start needing something newer.

Publish broapp first, the provider packages second, create-broapp last. The providers import broapp/ai/host and the generator's default range points at the broapp it was released with, so nothing may reference a broapp that is not on npm yet.

bun run scripts/stage-template.ts     # the generator ships the template
cd packages/broapp               && npm publish --provenance --access public
cd ../broapp-ai-anthropic        && npm publish --provenance --access public
cd ../broapp-ai-compatible       && npm publish --provenance --access public
cd ../create-broapp              && npm publish --provenance --access public

Or use the Publish to npm workflow, which runs the checks first, requires a npm-publish environment approval, and defaults to --dry-run.

Verify bun create broapp resolves. Bun maps bun create broapp to the npm package create-broapp. Test it from a clean machine or a container:

bun create broapp /tmp/verify-me

Decide about signing. Release binaries are unsigned. macOS notarisation needs an Apple Developer account and must run on macOS; Windows needs a code-signing certificate. Neither is set up. Until they are, releases should keep saying so — packaging.md.

Publish a release. The release workflow builds, smoke-tests the native targets, and creates a draft. Reviewing and publishing it is manual, on purpose.

Version policy

Pre-., so a minor bump may break things. Say so in the release notes.

The generated project depends on broapp by caret range, so a project generated today picks up compatible fixes. A breaking change to the runtime therefore needs a minor bump pre-.broapp and a note in the release.

What is intentionally not automated

  • Publishing to npm on a tag. Publication is irreversible for a version.
  • Publishing a GitHub release. The workflow drafts one; a person publishes it.
  • Signing. Nothing here has credentials, and it should not.

Edit this page on GitHub