Skip to content

chore: bump start-sdk to 1.5.0; refresh dep refs#54

Merged
MattDHill merged 5 commits into
masterfrom
next
May 14, 2026
Merged

chore: bump start-sdk to 1.5.0; refresh dep refs#54
MattDHill merged 5 commits into
masterfrom
next

Conversation

@MattDHill
Copy link
Copy Markdown
Member

Summary

  • SDK 1.3.3 → 1.5.0.
  • Upstream Mempool: already at the latest release (v3.3.1); no change.
  • Sibling deps: locked commits refreshed to current master HEADs for bitcoin-core-startos, cln-startos, lnd-startos. Their bundled @start9labs/start-sdk lock entries also moved from 1.3.2 → 1.3.3 to match each sibling's actual package.json.
  • npm registry deps: @types/node, prettier, fast-xml-parser, @nodable/entities, nan, strnum, yaml picked up patch/minor refreshes via npm update (no nested duplicate entries left over).
  • Version: 3.3.1:23.3.1:3 (file renamed in place; no migration needed; the migration block carries over for the same 0.3.5.1 → 3.3.1 jump it already handled).

Breaking change fixed

SDK 1.5.0 added effects.notification, so its Effects shape diverges from 1.3.x. sdk.action.createTask's GetActionInputType<T> is T extends Action<...> ? I : neverAction's run/getInput/exportMetadata reference Effects, so the bitcoin-core-startos-provided autoconfig (typed against 1.3.3's Action) no longer structurally matches 1.5.0's Action, and the inferred input narrowed to never. Fixed by casting autoconfig to our SDK's Action<'autoconfig', typeof _autoconfig['_INPUT']> in startos/dependencies.ts. The same workaround will be unnecessary once bitcoin-core-startos itself ships on 1.5.0.

Operational note: npm update is blocked upstream

npm update (and npm install from a fresh state) fails because cln-startos's plugins submodule (lightningd/plugins) pins a commit that lists the missing-from-GitHub Start9Labs/c-lightning-pruning-plugin repo. npm hard-codes --recurse-submodules on git deps with no flag to opt out. Two workarounds in use here:

  • The original commit edited package-lock.json resolved commits directly to bump the Start9 sibling refs.
  • The follow-up npm update for registry deps was run with a git shim on PATH that strips --recurse-submodules from the clone invocation, letting npm finish without touching the broken nested submodule (the cached repo only needs typings).

Both are session-local; nothing in the repo depends on either workaround. The real fix lives in lightningd/plugins (or in cln-startos pinning a different plugins commit), and this will keep biting future SDK bumps in every package that depends on cln-startos until then.

Test plan

  • tsc --noEmit passes
  • npm run build produces javascript/index.js
  • make produces mempool_{x86_64,aarch64}.s9pk (SDK 1.5.0, v3.3.1:3)

Replaces #52 (auto-closed when its head branch was renamed).

helix-nine and others added 5 commits May 12, 2026 18:39
- @start9labs/start-sdk 1.3.3 → 1.5.0
- Cast bitcoin-core-startos's autoconfig Action to our SDK's Action
  interface — sibling packages are still on 1.3.3, and 1.5.0 added
  effects.notification which makes structural Action matching fail in
  createTask's GetActionInputType inference (input value narrows to
  never). Cast restores the input type.
- Refresh bitcoin-core-startos / cln-startos / lnd-startos pinned
  commits to current master HEADs. npm update is blocked by
  cln-startos's plugins submodule pointing at the deleted
  Start9Labs/c-lightning-pruning-plugin repo, so the lock file was
  edited directly (resolved commit + nested @start9labs/start-sdk
  bumped from 1.3.2 → 1.3.3 to match each sibling's package.json).
- Bump StartOS revision 3.3.1:2 → 3.3.1:3 with matching release notes.
npm update bumps:
- @types/node 22.19.15 → 22.19.19
- prettier 3.8.1 → 3.8.3
- fast-xml-parser 5.6.0 → 5.7.3 (and dedupes from start-sdk's nested copy)
- @nodable/entities 1.1.0 → 2.1.0 (dedupes for the same reason)
- nan 2.26.2 → 2.27.0
- strnum 2.2.3 → 2.3.0
- yaml 2.8.3 → 2.9.0

Sibling git deps (bitcoin-core-startos@28.x, cln-startos@master,
lnd-startos@master) were already at their branch HEADs.
- New root instructions.md walks first-launch through Bitcoin Core + Electrum
  indexer + optional Lightning, points at the Select Indexer / Enable Lightning
  / Configure Indexing actions, and surfaces the 16 GB RAM gate.
- Ports the upstream Mempool docs URL out of the manifest's docsUrls into the
  instructions Documentation section.
- Lists the consequential limitations users will run into: mainnet-only,
  Electrum-only backend, single indexer and single Lightning node at a time,
  disabled MaxMind/Redis/Stratum/replication/accelerator features.
- CLAUDE.md slimmed to a pointer at CONTRIBUTING.md; the "how upstream is
  pulled" notes move into CONTRIBUTING.md's Updating the upstream version
  section, covering the frontend+backend tag pair plus the independent MariaDB
  sidecar tag.
- CONTRIBUTING.md reshaped to match the hello-world template.
Replaces the Configure Indexing action with a broader Indexing and
Performance action that combines a poll/projection profile, statistics
toggle, and the four indexing toggles on one form. Low-CPU (POLL_RATE_MS
8000, MEMPOOL_BLOCKS_AMOUNT 4) is the new default; Balanced (4000/6) and
Responsive (2000/8, matching the upstream in-source default) opt in.
Existing installs migrate to Low-CPU on upgrade. PROFILES live in utils.ts
as the single source of truth for the file-model defaults, migration, and
action.
@MattDHill MattDHill merged commit a991099 into master May 14, 2026
1 check passed
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