Repository navigation
Releases: ddtcorex/dsh-maestro-remote
Releases · ddtcorex/dsh-maestro-remote
Release list
v0.6.1
Fixed
- The BlockAssembler restore patches the packaged dsh runtime. On a packaged install
@deepseek-ai/dsh-llmlives in the runtime's own node_modules, outside alink:plugin's require graph, so the tool-call id/name restore fell through to a checkout source path and patched a module instance the agent loop never uses. It now resolves dsh-llm from the running dsh entry first and logs the path it used at boot ([maestro-patch] BlockAssembler restore installed via ...), or warns when no class resolves.
What's Changed
- chore: follow the maestro-reviewer rename by @ddtcorex in #82
- fix(remote): patch the BlockAssembler of the packaged dsh runtime by @ddtcorex in #83
- chore(release): 0.6.1 by @ddtcorex in #84
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Removed
- Stale
quickTargetsetting. Nothing in the tunnel or proxy read it. The'webhook'value, the config field, the validator check and the Settings RPC allow-list entry are gone. The vendored key map still lists the key, so a stored value is simply ignored. - Dead assembler patch candidates. The patch no longer probes
lib/assembler.js(the built harness bundles the class intolib/index.js) or a path relative to the plugin that never matched a real layout. - Legacy PIN fallback. The PIN store no longer reads or migrates the old
tokenandtoken-lanfiles. A machine that has only those legacy files and nopin/pin-lannow gets a freshly generated PIN on first read. Existingpinandpin-lanfiles are unaffected, and legacy files are left on disk untouched.
Fixed
- Connection row injects webStartup. DSH 0.2.1-alpha.x removed the webRuntime service; a connection entry still injecting it waits for a service that never mounts and dsh web never boots.
What's Changed
- docs(remote): document requirements, pinning and the shipped connection patch by @ddtcorex in #77
- chore(remote): remove legacy PIN fallback and dead code by @ddtcorex in #78
- docs(remote): note the package-name assembler path is unproven by @ddtcorex in #79
- DSH 0.2.1 compat: webStartup inject on the connection row by @ddtcorex in #80
- chore(release): 0.6.0 by @ddtcorex in #81
Full Changelog: v0.5.3...v0.6.0
v0.5.3
Fixed
- RPC rows activate on DSH 0.2.x. The bundle patch declares
webServeron theconnectionentry, so rows that callrpc.handleno longer fail withcannot get property "webServer" without injectand their channels no longer answer 405. - Settings RPC reachable. The
remote-rpcrow waits formaestroTunnel, fixing HTTP 405 on Settings > Maestro Remote. - PIN login works. The tunnel reads
connectionthrough a nested inject, so a correct PIN mints the dsh cookie instead of answering 401.
What's Changed
- fix(remote): declare webServer on the connection entry by @ddtcorex in #75
- chore(release): 0.5.3 by @ddtcorex in #76
Full Changelog: v0.5.2...v0.5.3
v0.5.2
Fixed
- Phone layout. Every settings field fills the row width, with or without a Save button (the button stays on the same row), and a row whose control is a single checkbox keeps its label left and a 44px tap target right on one line instead of a lone box under the label.
What's Changed
- fix(remote): fill the width on a phone and keep checkbox rows on one line by @ddtcorex in #73
- chore(release): 0.5.2 by @ddtcorex in #74
Full Changelog: v0.5.1...v0.5.2
v0.5.1
Fixed
- Settings fields share one box. The host's own
ConfigFielddeclaration plus a 44px touch floor, replacing a 32px field that disagreed with the other Maestro sections.
What's Changed
- fix(remote): adopt the shared settings field box by @ddtcorex in #71
- chore(release): 0.5.1 by @ddtcorex in #72
Full Changelog: v0.5.0...v0.5.1
v0.5.0
Security
- The
tunneldomain is validated on every write. The store accepts a write
to an unregistered domain as-is, and this package registered no validator, so
the only checks that ran were inside one RPC handler'ssaveTunnelConfig. The
other writers reached the same domain unchecked —maestro.lanPin.setEnabled
writes it directly (correctly, sincelanPinEnabledis deliberately not in
the Settings card's SAVABLE set, and therefore also unvalidated), and the
tunnel-profile applier rewrites the whole domain after every harness sync.
Both feed the proxy, the cloudflared controller and the PIN gate at boot.
Registered from both rows that write it, so the first write from either is
already checked.
Changed
dsh-maestro-patchis absorbed as this package'smaestro-patchrow.
The zero-fork shim (viewport, apple-touch-icon, connection loopback,
welcome) now lives atsrc/host/patch/andsrc/client/patch/and keeps its
own row on purpose: the patches must work with the tunnel off, which a row
folded into the tunnel provider could not guarantee. There is no
docs/history/patch.mdbecause that repository never carried a
CHANGELOG.md— this entry is its whole history record.- The settings store is embedded, not depended on.
src/host/vendor/store.ts
is a committed, hash-sealed copy generated bydsh-maestro-core's
scripts/vendor-store.mjs, and the@ddtcorex/dsh-maestro-config-lib
dependency is gone. Core owns the store; this package owns the tunnel domain. - The tunnel and LAN PIN moved here from review. The nine
maestro.tunnel*/maestro.lanPin*endpoints and the nine settings keys
review gave up now live on/dsh-maestro-remote, which review's stub row had
declared but never served. - New settings section
maestro-remote(idmaestro-remote, order 31).
Fixed
- One row is addressed by the bare package name. All three rows were
addressed by subpath, so the client module scan resolved no package root and
classified this package as permanently not a client row:lib/client.jswas
never served and the settings section was absent with no boot error naming a
cause. - The client bundle registers under this package's own name.
scripts/build-client.mjswas copied from a sibling and kept that sibling's
loader id, so the bundle carried remote's code under
@ddtcorex/dsh-maestro-gateway's name. The id is now read from
package.json.
What's Changed
- chore: target DSH 0.1.7-alpha.2 (+ fail-loud guards) by @ddtcorex in #58
- fix(remote): relax the dsh peer range to survive the 0.1.7 boot gate by @ddtcorex in #59
- fix(remote): drop the ignored authority argument from rpc.handle by @ddtcorex in #60
- fix(remote): re-anchor dsh peer ceiling to 0.3.0-0 by @ddtcorex in #61
- docs: drop the retired dsh-maestro-meta install path by @ddtcorex in #62
- refactor(remote): embed the settings store instead of depending on it by @ddtcorex in #63
- fix(remote): address a row by the bare name and derive the loader id by @ddtcorex in #64
- feat(remote): draw the tunnel section in the house pattern by @ddtcorex in #65
- docs: record what the absorption actually preserved by @ddtcorex in #66
- docs(remote): align README and AGENTS with the code by @ddtcorex in #67
- fix(remote): validate the tunnel domain and re-vendor the store by @ddtcorex in #68
- chore(release): 0.5.0 by @ddtcorex in #69
- fix: keep the machine's tunnel names out of published source by @ddtcorex in #70
Full Changelog: v0.4.0...v0.5.0
v0.4.0
Fixed
- Require the config-lib that owns the shared store — the declared range
could not reach the release that moved the settings doc, so a registry
install read the retired path (#54).
Changed
- Follow
@ddtcorex/dsh-maestro-config-libto^0.3.0(#54) and the DSH
0.1.7-alpha.1peer pins (#56). - Declare package license, repository and Node engine range in the manifest
(#53); correct thelib/build-output claim in the docs (#52).
What's Changed
- docs: correct the lib/ build-output claim by @ddtcorex in #52
- docs: declare package license, repository and node engine by @ddtcorex in #53
- fix(remote): require the config-lib that owns the shared store by @ddtcorex in #54
- chore(deps): bump @deepseek-ai/* peers to 0.1.6-alpha.2 by @ddtcorex in #55
- chore: bump @deepseek-ai/* pins to 0.1.7-alpha.1 by @ddtcorex in #56
- chore: release v0.4.0 by @ddtcorex in #57
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Added
- Configurable PIN session TTL, default 1 day (#48).
- Self-healing tunnel watchdog with backoff retry (#46).
- Rotated, age-pruned proxy access log (#45).
Fixed
- The LAN PIN gate is usable — login and the gate now choose the governing
PIN with the same host-class predicate and mint class-specific cookies
(maestro_pin/maestro_lan_pin), so the advertised LAN URL + LAN PIN
pair can actually produce a cookie the gate accepts; the card also advertises
the LAN listener URL instead of the public one (#49, #50). - Declare row
injectfor the rpc row on DSH 0.1.5 (#47).
What's Changed
- feat(remote): add rotated, age-pruned proxy access log by @ddtcorex in #45
- feat(remote): self-healing tunnel watchdog with backoff retry by @ddtcorex in #46
- fix(remote): declare row inject for rpc row on DSH 0.1.5 by @ddtcorex in #47
- feat(remote): configurable PIN session TTL (default 1 day) by @ddtcorex in #48
- fix(remote): make the LAN PIN gate usable and harden the proxy by @ddtcorex in #49
- test(remote): pin loopback trust to the LAN listener by @ddtcorex in #50
- chore: release v0.3.0 by @ddtcorex in #51
Full Changelog: v0.2.2...v0.3.0
v0.2.2
Fixed
- Stale
dsh-authcookie after adsh webrestart — when the signing secret rotates on restart, a returning browser'sdsh-auth-*cookie becomes invalid, and the proxy previously skipped?token=auto-mint whenever anydsh-auth-*cookie was present, causing a permanent 401 ("no session initialized") through the tunnel. The proxy now auto-recovers: on a 401 for a GET/HEAD index request it retries with?token=(stripping only the staledsh-auth-*cookie), and on any other 401 or a rejected WebSocket upgrade it clears the stale cookie viaSet-Cookie(#43).
What's Changed
- fix(remote): auto-recover from stale dsh-auth cookie on 401 after restart by @ddtcorex in #43
- chore: release v0.2.2 by @ddtcorex in #44
Full Changelog: v0.2.1...v0.2.2
v0.2.1
Fixed
- Deployment error for custom ports — suppress deploymentError for explicit custom ports (#41).
- Maestro PWA & branding — favicon/manifest/title (#40).
What's Changed
- fix(remote): Maestro PWA & branding (favicon/manifest/title) by @ddtcorex in #40
- fix(remote): suppress deploymentError for explicit custom ports by @ddtcorex in #41
- chore: release v0.2.1 by @ddtcorex in #42
Full Changelog: v0.2.0...v0.2.1