Skip to content

feat: dual-generation Remote seam for dsh 0.1.2-alpha.1 (0.0.3) - #9

Merged
sanshanya merged 1 commit into
mainfrom
feat/dual-generation-remote-seam
Aug 29, 2026
Merged

feat: dual-generation Remote seam for dsh 0.1.2-alpha.1 (0.0.3)#9
sanshanya merged 1 commit into
mainfrom
feat/dual-generation-remote-seam

Conversation

@sanshanya

Copy link
Copy Markdown
Owner

What

dsh master (0.1.2-alpha.1) removed connection.api and moved the settings/llm remotes onto traced remote.<ns> Cordis services with positional signatures (settings.mutate(ns, ops, expectedRevision)), a renamed llm.listConfigurableProviders, hoisted llm.discoverModels(settingsNs, …), and a slim {ok, value} | {ok, error} envelope. This plugin's client face therefore failed at runtime (the page could never load providers).

  • src/client/wire.ts probes the new remote.<ns> services first and adapts their shapes back to the legacy face; on the published npm line (rc.7–0.1.1-rc.2) it returns connection.api unchanged. Page logic speaks one face either way.
  • Registration defers onto cordis internal/service arrivals and never throws: master mounts namespaces sequentially (settings before llm), so a synchronous apply lands inside the mount window and previously bricked the whole web shell. The probe names the awaited namespace in either mount order; a throwing section mount is contained (logged once, latch held, listener unsubscribed).
  • Live lanes follow the web login gate (full token URL → 303 cookie exchange; the pre-auth line degrades to plain traffic on the same code path); the integration lane fetches the page's advertised rev-keyed combo URLs.

Verification

  • Hermetic: 213 passed / 5 skipped; wire.ts 100% statements/lines/functions/branches.
  • Live on the real 0.1.2-alpha.1 master checkout: integration lane green; functional lane green — schema-derived vocabulary, CAS write/revert round-trips, catalog overrides, dormant-route onboarding. Served bundle 56,510 bytes.
  • Adversarial 2+2+1 review applied: minimalism cuts (strict resolver removed — orphan API, tree-shaken; constant envelope id; dead test/field trims) + two robustness fixes (honest mount-order diagnostics, mount-throw containment), equivalence confirmed by re-running the live functional lane after the cuts.

Single squashed commit; merges as one entry on main. Release 0.0.3 tags at the merge point.

master removed connection.api and moved the settings/llm remotes onto
traced remote.<ns> Cordis services with positional signatures, a
renamed providers list, and a slim {ok,value}|{ok,error} envelope.
wire.ts probes the new services first, adapts their shapes back to
the legacy face, and falls back to connection.api on the published
rc line. Registration defers onto cordis internal/service arrivals
and never throws: a synchronous apply lands inside master's
sequential mount window (settings before llm); the probe names the
awaited namespace in either mount order; a throwing section mount
is contained and unsubscribes instead of escaping into cordis's
unguarded dispatch or bricking the web shell.

Live lanes follow the web login gate (full token URL, 303 cookie
exchange, forgiving pre-auth fallback); the integration lane fetches
the advertised rev-keyed combo URLs.

Verified: 213/218 hermetic, wire.ts 100% on every coverage metric;
integration + functional lanes green on the real 0.1.2-alpha.1
master checkout. Served bundle 56,510 bytes.

chore(release): 0.0.3
@sanshanya
sanshanya merged commit 57280aa into main Aug 29, 2026
2 checks passed
@sanshanya
sanshanya deleted the feat/dual-generation-remote-seam branch August 29, 2026 08:42
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.

1 participant