Skip to content

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.

LocationRole today
publish-libs.jsonRoster 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.jsonDepends on @sksizer/fleet; never published
docs/PUBLISHING.mdThe 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

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.

  1. Make dev-ports standalone-buildable: drop repo-only paths, check tauri-wrapper.mjs and cli.ts assume nothing about the monorepo layout, add the mirror release.yml.
  2. Do the same for app-harness; remove "private": true.
  3. Create the mirror repos and their trusted-publishing settings.
  4. Add both entries to publish-libs.json.
  5. just release-lib dev-ports minor --dry-run, then --push; then app-harness.
AreaNote
publish-libs.jsonTwo entries
packages/ts/dev-ports/Standalone build, mirror workflow
packages/ts/app-harness/Standalone build, mirror workflow
docs/LIBRARIES.mdMark both published
  • AC-1: @sksizer/dev-ports and @sksizer/app-harness install from npm into an empty directory, and bun -e "import('@sksizer/app-harness')" succeeds.
  • AC-2: The snapshot build in publish-lib.yml passes for both.
  • AC-3: Internal consumers still resolve both through workspace:*.
  • Using the published package in the template (T-GQ9Y).
  • T-LJLH, so the published API is the reviewed one.
  • dev-ports is a hard dependency of the harness (port lookup) and has never been on the publish channel.

T-LJLH


← Back to Tasks