fix(deploy): the dragoon gate reads the deployer's own payload-dir twin #45

Merged
dank merged 1 commits from feat/frank-dragoon-npu-lane into main 2026-10-19 21:49:17 -07:00
Owner

One-line-class follow-up to #44, found by the next deploy:

./scripts/deploy-remote.sh: line 1445: CHECKOUT: unbound variable

deploy_llm_dragoon's new containment gate parsed scripts/frank-dragoon.env through a $CHECKOUT variable that does not exist in deploy-remote.sh, so under set -u the deployer exited before it touched the unit — endpoint stayed healthy and lane-off (the gate runs pre-stop, which is exactly why it was written there), but the enablement could not deploy.

deploy-remote.sh runs from the checkout root and every other path in that defaults block is a parity twin (LLM_DRAGOON_CKPT, _VISION, _TOK_DIR), so the payload dir gets the same shape: LLM_DRAGOON_MODEL_DIR defaulted to the deployed path and compared directly. No env parsing, no invented variable.

  • Seam asserts the new twin against the env file beside the NPU twins it already checks.
  • Containment comparison verified both ways on the real strings: inside accepted; the old outside path refused; a shared-prefix sibling (…-abliteratedX) refused — the trailing / is what makes that case fail correctly.
  • tests/frank_dragoon_unit.bats 33/33; full ./tests/run.sh before merge.

cwd: /home/blank/.omp/wt/wt-20261019-020309-6d1fc1f · session: 01a15366-7601-7175-bb69-c62186c3f8b5
(build worktree: /home/blank/.omp/wt/wt-dragoon-npu)

One-line-class follow-up to #44, found by the next deploy: ``` ./scripts/deploy-remote.sh: line 1445: CHECKOUT: unbound variable ``` `deploy_llm_dragoon`'s new containment gate parsed `scripts/frank-dragoon.env` through a `$CHECKOUT` variable that does not exist in `deploy-remote.sh`, so under `set -u` the deployer exited before it touched the unit — endpoint stayed healthy and lane-off (the gate runs pre-stop, which is exactly why it was written there), but the enablement could not deploy. `deploy-remote.sh` runs from the checkout root and every other path in that defaults block is a parity twin (`LLM_DRAGOON_CKPT`, `_VISION`, `_TOK_DIR`), so the payload dir gets the same shape: `LLM_DRAGOON_MODEL_DIR` defaulted to the deployed path and compared directly. No env parsing, no invented variable. - Seam asserts the new twin against the env file beside the NPU twins it already checks. - Containment comparison verified both ways on the real strings: inside accepted; the old outside path refused; a shared-prefix sibling (`…-abliteratedX`) refused — the trailing `/` is what makes that case fail correctly. - `tests/frank_dragoon_unit.bats` 33/33; full `./tests/run.sh` before merge. --- cwd: /home/blank/.omp/wt/wt-20261019-020309-6d1fc1f · session: 01a15366-7601-7175-bb69-c62186c3f8b5 (build worktree: /home/blank/.omp/wt/wt-dragoon-npu)
dank added 1 commit 2026-10-19 21:48:54 -07:00
The containment gate added in #44 parsed scripts/frank-dragoon.env through a
$CHECKOUT variable that does not exist in deploy-remote.sh, so the very next
deploy died at `set -u` before it touched the unit:

  ./scripts/deploy-remote.sh: line 1445: CHECKOUT: unbound variable

deploy-remote.sh runs from the checkout root and every other path in that block
is a parity-twin default (LLM_DRAGOON_CKPT/_VISION/_TOK_DIR), so the payload dir
gets the same treatment: LLM_DRAGOON_MODEL_DIR, defaulted to the deployed path,
compared directly. The seam now asserts that twin against the env file next to
the NPU twins it already checks, and the containment comparison itself is
verified both ways (inside accepted; the old outside path and a shared-prefix
sibling both refused).
dank merged commit 861920797d into main 2026-10-19 21:49:17 -07:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dank/serverAppConfigs#45