Skip to content

Delegate jspod install to upstream jss install; bump jss to ^0.0.207#78

Merged
melvincarvalho merged 2 commits into
gh-pagesfrom
issue-48-delegate-install
Jun 11, 2026
Merged

Delegate jspod install to upstream jss install; bump jss to ^0.0.207#78
melvincarvalho merged 2 commits into
gh-pagesfrom
issue-48-delegate-install

Conversation

@melvincarvalho

Copy link
Copy Markdown
Contributor

Fixes #48

Two commits, validated together on a throwaway pod (port 5777, isolated root — live pod untouched):

1. chore: bump javascript-solid-server to ^0.0.207
0.0.205–207 are fixes only: IdP hardening (incl. #558 — passkey degradation on stale WebViews, the upstream half of jspod#65), RFC 9207 iss conformance, tunnel credential passthrough, conneg/git HEAD parity.

2. refactor: delegate jspod install to upstream jss install
-255 +37 in index.js. The plumbing (spec parsing, bundles, IdP auth, git dual-push) has lived upstream since JSS 0.0.198 (JSS#464) and was byte-for-byte duplicated here. jspod install stays as a command; it now spawns jss install with jspod's two policies applied:

  • --pod defaults to http://localhost:5444 (jss alone: 4443)
  • bare jspod install--bundle default (skipping value-flags, so jspod install --user bob still counts as bare)

The first-run bootstrap in lib/start.js passes --bundle default --pod <url> explicitly and flows through unchanged.

Validation (jss 0.0.207)

Test Result
Upstream binary direct: jss install chrome 1/1 installed, app serves HTTP 200
Delegated named install: jspod install vellum 1/1 installed, HTTP 200
Delegated bare install "Installing 12 apps from bundle "Default"" — policy mapping works; 10/12 installed
jspod install --help passes through to jss install --help
The 2 bundle failures (git, chat — HTTP 413 on push) reproduce identically with the old implementation — pre-existing jss-side request-body limit on large packs, not a regression. Worth a separate upstream issue.

Behavior deltas (accepted per #48: "jss install --help is the source of truth")

  • Install output/help are jss-styled (plain ANSI) instead of jspod chalk boxes
  • jss prints two notice lines at startup (TOKEN_SECRET path, oidc Node-version warning)
  • Repeated --bundle a --bundle b is now last-wins (was: both)
  • Gained: --nostr-privkey NIP-98 install auth

Deliberately not touched: jspod's own version and CHANGELOG (avoids conflict with #76; both ride in the next release cut).

0.0.205-207 are fixes only: IdP hardening (incl. #558 passkey
degradation on stale WebViews — upstream half of jspod#65), RFC 9207
'iss' conformance, tunnel credential passthrough, conneg/git HEAD
parity. Validated on a throwaway pod: jss install chrome → 1/1
installed, app serves HTTP 200.
Replace the wrapper-side install plumbing (runInstall git clone +
dual-push, parseAppSpec, loadBundle/resolveBundleSource,
printInstallHelp — 255 lines) with a 37-line spawn of 'jss install',
which has shipped the same plumbing since JSS 0.0.198 (JSS#464).

jspod keeps its two policies on top:
- --pod defaults to jspod's port 5444 (jss alone defaults to 4443)
- bare 'jspod install' resolves to '--bundle default'

Validated against a throwaway pod on jss 0.0.207:
- named install (vellum) → 1/1, app serves HTTP 200
- bare install → 'Installing 12 apps from bundle Default', 10/12 ok
- the 2 failures (git, chat: HTTP 413 on push) reproduce identically
  with the OLD implementation — pre-existing jss-side body limit on
  large packs, not a regression
- --help passes through to jss install --help (source of truth)

Behavior deltas: jss-styled output/help instead of chalk boxes;
repeated --bundle is now last-wins; --nostr-privkey (NIP-98) gained.

Fixes #48
@melvincarvalho melvincarvalho merged commit 0a3cbf0 into gh-pages Jun 11, 2026
@melvincarvalho melvincarvalho deleted the issue-48-delegate-install branch June 11, 2026 06:44
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.

Refactor: delegate jspod install to jss install (consolidate install plumbing)

1 participant