Files
stack/agents/sage/work/q81/lease-gate-notes.md
T
jason.woltjeandClaude Opus 5.5 d3ca2c22d6 ops(q81): the wrapper forwards __lease-capability to mosaic-old (Mos)
Mos amended ruling (2): with no environment location for
MOSAIC_LEASE_VERSION_PROBE_COMMAND, the wrapper sends only
`__lease-capability` to ~/.npm-global/bin/mosaic-old, so the old CLI's
lease gate still gets its answer. Every other subcommand reaches the
pinned worktree; undo removes the forward with the wrapper. update now
rewrites the wrapper, and status flags a wrapper that differs from what
the script writes. Checked live at 21:17:58Z: the probe answered
{"name":"lease-runtime-activation","version":1}, exit 0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:18:21 -05:00

1.5 KiB

Q81 (2): lease gate env, read-only findings, 2026-10-11

  • activation_version_gate.py:94-104 reads MOSAIC_LEASE_VERSION_PROBE_COMMAND from the environment it is handed (shlex.split), else shutil.which("mosaic", PATH).
  • launch-runtime.py:129 uses os.environ unchanged; it inherits the old CLI's process env, which inherits from whatever runs the old CLI (shell, provisioning, a unit). It reads no env file of its own.
  • So there is no single env location to set. Candidates and their problems:
    • ~/.config/environment.d/*.conf: reaches systemd user services only, not shells.
    • shell rc files: Jason's dotfiles, out of scope.
    • fleet unit drop-ins or ~/.mosaic / ~/.config/mosaic files: fleet state, read-only for me.
  • Alternative inside files Q81 owns: the new wrapper forwards only __lease-capability to ~/.npm-global/bin/mosaic-old. Same effect as the env var (the real old CLI answers), no env file, removed by undo. Needs Mos's ok, since it differs from the ruling's mechanism.

Amendment, 2026-10-11T21:17Z (Mos, amending ruling (2))

Mos ruled the env location the original ruling assumed doesn't exist, so the wrapper forwards instead. mosaic __lease-capability goes to ~/.npm-global/bin/mosaic-old; every other subcommand goes to the pinned worktree. undo removes the wrapper and the forward with it. Checked at 21:17:58Z in a login shell: mosaic __lease-capability answered {"name":"lease-runtime-activation","version":1} with exit 0, and mosaic bus status and mosaic launches list still answered from the worktree.