T-97OP-publish-app-harness
State: planning/proposed · Impact: medium · Complexity: small
Put the harness on npm so apps outside this repo, starting with template-tauri-nuxt, can depend on
it. Publishing waits for the DX review so the first public API is the simplified one.
| Location | Role today |
|---|---|
publish-libs.json | Roster of mirrored libraries. Has command-seam and fleet; no app-harness, no dev-ports |
packages/ts/app-harness/package.json | "private": true; depends on @sksizer/command-seam, @sksizer/dev-ports, @sksizer/fleet via workspace:* |
packages/ts/dev-ports/package.json | Depends on @sksizer/fleet; never published |
docs/PUBLISHING.md | The mirror flow: just release-lib <key> <bump> --push, tag <key>/vX.Y.Z, publish-lib.yml snapshots dir to the mirror, the mirror’s release.yml publishes |
Proposed
Section titled “Proposed”publish-libs.json has a dev-ports entry (needs: ["fleet"]) and an app-harness entry
(needs: ["command-seam", "dev-ports", "fleet"]), each with a public mirror. Both are on npm, and
the harness README is the mirror’s front page.
Approach
Section titled “Approach”- Make
dev-portsstandalone-buildable: drop repo-only paths, checktauri-wrapper.mjsandcli.tsassume nothing about the monorepo layout, add the mirrorrelease.yml. - Do the same for
app-harness; remove"private": true. - Create the mirror repos and their trusted-publishing settings.
- Add both entries to
publish-libs.json. just release-lib dev-ports minor --dry-run, then--push; thenapp-harness.
| Area | Note |
|---|---|
publish-libs.json | Two entries |
packages/ts/dev-ports/ | Standalone build, mirror workflow |
packages/ts/app-harness/ | Standalone build, mirror workflow |
docs/LIBRARIES.md | Mark both published |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1:
@sksizer/dev-portsand@sksizer/app-harnessinstall from npm into an empty directory, andbun -e "import('@sksizer/app-harness')"succeeds. - AC-2: The snapshot build in
publish-lib.ymlpasses for both. - AC-3: Internal consumers still resolve both through
workspace:*.
Out of scope
Section titled “Out of scope”- Using the published package in the template (
T-GQ9Y).
Dependencies
Section titled “Dependencies”T-LJLH, so the published API is the reviewed one.
Discovery context
Section titled “Discovery context”dev-portsis a hard dependency of the harness (port lookup) and has never been on the publish channel.
Depends on
Section titled “Depends on”T-LJLH