Skip to content

chore: migrate to start-sdk 2.0 - #2

Merged
helix-nine merged 7 commits into
mainfrom
next
Jul 22, 2026
Merged

chore: migrate to start-sdk 2.0#2
helix-nine merged 7 commits into
mainfrom
next

Conversation

@helix-nine

Copy link
Copy Markdown

start-sdk 2.0 migration

Migrates this package to @start9labs/start-sdk 2.0 (requires StartOS 0.4.0-beta.10).

Changes

  • SDK pin → 2.0.1, TypeScript → ^6, tsconfig.json extends the shipped tsconfig.base.json, Makefile includes the SDK's s9pk.mk (vendored copy removed), reusable CI workflows repointed to Start9Labs/start-technologies.
  • 2.0 API migrations as applicable: sdk.serviceInterface.*sdk.host.* resolved over the LXC bridge, lazy SubContainer, alerts manifest field removed, and other ### Changed / ### Removed items from the SDK 2.0 changelog.
  • Downstream revision bump with release notes; package docs brought onto the current packaging-guide convention.

Test plan

  • CI build is green (npm citsc → SDK lint → nccs9pk pack).
  • Install the built .s9pk on a StartOS 0.4.0-beta.10 server.
  • Start the service; confirm it reaches its health check and primary interface.
  • For dependents: confirm it connects to its dependency over the LXC bridge.

🤖 Generated with Claude Code

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F5qZh4QiVySBLkV5ya7XSr
helix-nine and others added 6 commits July 6, 2026 09:41
…n real address changes

Doctrine v3 (issue start-technologies#3407): dependency addresses go
through a utils.ts bridgeAddress helper chained .const() — the mapped
value is the minimal bridge address, so main never restarts on
dependency updates, and heals with one restart when a dependency is
installed after this service, uninstalled, or changes port. Cross-
package container IPs and .startos dials are gone; static config
defaults become loopback placeholders; tor consumers fold the
allocator-guaranteed 9050 fallback into the map.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PpJxhk25X42WTafMdkUx6t
- no fabricated dependency addresses: absent dependency => absent
  config/env value (optional fields, omitted keys), never a fake
  127.0.0.1 dial default
- dependency-task accept entries match absent-when-default fields
  (prune: 0 or absent both accepted)
- neutral naming: the Bitcoin dependency is 'Bitcoin', not 'Bitcoin
  Core'/'Bitcoin Knots', across prose, release notes, and i18n
- instructions.md keeps no version/migration notes
- remove orphaned i18n entries added by the migration
- normalize the bridgeAddress helper to an explicit early-return and
  prettier-format wave-touched files

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PpJxhk25X42WTafMdkUx6t
Bumps @start9labs/start-sdk 2.0.1 -> 2.0.3 (dependency and lockfile only).

- 2.0.3 fixes a dependency-gated daemon wedging permanently after its
  dependency's readiness flaps: Daemon.term() unconditionally destroyed the
  daemon's SubContainer, so the next start() threw "already destroyed" and the
  daemon never recovered. Adds a non-destroying Daemon.stop() for
  dependency-driven pauses, and serializes pause/resume transitions.
- 2.0.2 runs s9pk.mk's check-deps before packing, not just before install.

No packaging API changed between 2.0.1 and 2.0.3, so no source changes were
needed. Verified with `npm run check` (tsc --noEmit).
Re-resolves the git-ref dependencies (bitcoin-core-startos) to the current head of the
branch each spec points at. These pins predated the start-sdk 2.0.3 bump, so
each dependency dragged a nested @start9labs/start-sdk 2.0.1 into this
package's lockfile. They now resolve to 2.0.3 and dedupe against the
top-level copy, leaving no 2.0.1 anywhere in the tree.

Lockfile only; package.json is unchanged. Verified with `npm run check`.
Bumps @start9labs/start-sdk 2.0.3 -> 2.0.5 (dependency and lockfile only).

2.0.5 fixes ExVer range operations ignoring the downstream revision:
compareVersionRangePoints and adjacentVersionRangePoints compared the upstream
twice, so two points sharing an upstream but differing downstream (1.0.0:3 vs
1.0.0:15) collapsed into one. normalize() then dropped the lower of the two,
which made packed manifests advertise a canMigrateFrom/canMigrateTo range
narrower than the truth for any package whose `other` versions share current's
upstream. No upgrade path actually broke — StartOS resolves migrations through
the version graph rather than this field — but the manifests were wrong.

Also re-resolves the git-ref dependencies (bitcoin-core-startos) to the current head of the
branch each spec points at, so they carry start-sdk 2.0.5 too and dedupe
against the top-level copy instead of nesting a stale one.

No packaging API changed, so no source changes were needed. Verified with
`npm run check` (tsc --noEmit).
Bumps @start9labs/start-sdk 2.0.5 -> 2.0.6 (dependency and lockfile only).

2.0.6 fixes s9pk.mk failing under `make` in a git repo with no index yet: it
listed $(GIT_DIR)/index as an unconditional prerequisite, but `git init` creates
no index until the first `git add`, so a freshly scaffolded package aborted with
"No rule to make target '.git/index'" before packing. GIT_DEPS now filters
through $(wildcard ...), so a missing HEAD or index drops out of the prerequisite
list instead of halting the build (s9pk pack already handles a commit-less repo).
Build plumbing only.

Also re-resolves the git-ref dependencies (bitcoin-core-startos) to the current head of the
branch each spec points at, so they carry start-sdk 2.0.6 too and dedupe
against the top-level copy instead of nesting a stale one.

No packaging API changed, so no source changes were needed. Verified with
`npm run check` (tsc --noEmit).
@helix-nine
helix-nine merged commit 9cdbdf0 into main Jul 22, 2026
3 checks passed
@helix-nine
helix-nine deleted the next branch July 22, 2026 23:38
@helix-nine

Copy link
Copy Markdown
Author

Merged — the push to main kicked off Tag and Release, so the SDK 2.0 build is publishing off the final commit (start-sdk 2.0.6, x86 + arm CI green). Thanks for the review, @MattDHill.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants