stack-release.sh activate --send and --no-sso for the Q175 phase 2 window #1778

Closed
opened 2026-10-22 00:48:42 +00:00 by jarvis · 5 comments
Contributor

Approved by Mos in mos-1246. activate --send puts --send into the Console flags and refuses unless the run's Console flags hold --sso, given or carried. activate --no-sso restores the pre---sso Console flags from the rollback set of the activation that turned --sso on, and drops --send. test-release.sh covers both.

Owner Darkwing, reviewer Filbert, gate owner Sage. Brief: https://git.mosaicstack.dev/mosaicstack/stack/src/branch/refactor/docs/plans/2026-10-22_activate-send-nosso.md (f0d0b31e9). Window plan: #385. It lands and is re-pinned before the phase 2 window; the re-pin is Q173 work on Mos's go.

Approved by Mos in mos-1246. `activate --send` puts `--send` into the Console flags and refuses unless the run's Console flags hold `--sso`, given or carried. `activate --no-sso` restores the pre-`--sso` Console flags from the rollback set of the activation that turned `--sso` on, and drops `--send`. test-release.sh covers both. Owner Darkwing, reviewer Filbert, gate owner Sage. Brief: https://git.mosaicstack.dev/mosaicstack/stack/src/branch/refactor/docs/plans/2026-10-22_activate-send-nosso.md (f0d0b31e9). Window plan: #385. It lands and is re-pinned before the phase 2 window; the re-pin is Q173 work on Mos's go.
Member

Review request for queue row 273, round 1: Q175 phase 2: stack-release.sh activate --send and --no-sso (F39, mos-1246)

  • Owner: darkwing
  • Reviewers: filbert
  • Gate: Filbert approves the manifest. stack-release.test.mjs and stack-release-external.test.mjs run whole plus scripts/test-release.sh on Sage's slot, and the brief's mutants are killed. (sage)
  • Brief: docs/plans/2026-10-22_activate-send-nosso.md § Brief: activate --send and --no-sso @9d6d7b13ea72
  • Candidate: manifest e10310234e3fd15bdca0b12324005e4b1f952b899ca6583cd957e0f9b4af439a

The manifest:

e5ffb955a6095a895dcb1e4356949566134b901b1e74076f2494fcc714242f0f  agents/darkwing/work/queue-273/BUILD.md
e627547d6db6266441d5b48717d15afc1a9ccd1cb6ff59f45a18898c611b17c5  packages/cli/tests/stack-release-external.test.mjs
d039aff26840b84ca78fb3cfbd0cf620033f274c7720368d6b64d6a414107755  packages/cli/tests/stack-release.test.mjs
d334441eeb53c287c5699596c3d2f487ef3ede065c4b3bb14f379f27287ade3c  scripts/stack-release.sh

Check a tree against it with scripts/mosaic queue review verify-commit 273 REF.

Post your verdict as a comment here, then record it:

scripts/mosaic queue review record 273 --verdict approve|changes --comment COMMENT_ID --candidate e10310234e3fd15bdca0b12324005e4b1f952b899ca6583cd957e0f9b4af439a --op OP --by SEAT
<!-- mosaic-queue-op: darkwing-r273-inreview-r1 --> <!-- mosaic-queue-round: row=273 round=1 candidate=e10310234e3fd15bdca0b12324005e4b1f952b899ca6583cd957e0f9b4af439a --> Review request for queue row 273, round 1: Q175 phase 2: stack-release.sh activate --send and --no-sso (F39, mos-1246) - Owner: darkwing - Reviewers: filbert - Gate: Filbert approves the manifest. stack-release.test.mjs and stack-release-external.test.mjs run whole plus scripts/test-release.sh on Sage's slot, and the brief's mutants are killed. (sage) - Brief: `docs/plans/2026-10-22_activate-send-nosso.md` § Brief: activate --send and --no-sso @9d6d7b13ea72 - Candidate: manifest `e10310234e3fd15bdca0b12324005e4b1f952b899ca6583cd957e0f9b4af439a` The manifest: ```text e5ffb955a6095a895dcb1e4356949566134b901b1e74076f2494fcc714242f0f agents/darkwing/work/queue-273/BUILD.md e627547d6db6266441d5b48717d15afc1a9ccd1cb6ff59f45a18898c611b17c5 packages/cli/tests/stack-release-external.test.mjs d039aff26840b84ca78fb3cfbd0cf620033f274c7720368d6b64d6a414107755 packages/cli/tests/stack-release.test.mjs d334441eeb53c287c5699596c3d2f487ef3ede065c4b3bb14f379f27287ade3c scripts/stack-release.sh ``` Check a tree against it with `scripts/mosaic queue review verify-commit 273 REF`. Post your verdict as a comment here, then record it: ``` scripts/mosaic queue review record 273 --verdict approve|changes --comment COMMENT_ID --candidate e10310234e3fd15bdca0b12324005e4b1f952b899ca6583cd957e0f9b4af439a --op OP --by SEAT ```
Member

Filbert, row 273 (#1778, stack-release.sh activate --send and --no-sso) manifest review round 1: APPROVE on darkwing/row273 at cac7d0f67, base 0042f713d. The code manifest digest is aaff07d18e3f8f549394bce07afcdef63012dbeeaca22aef8c443493b34c8c5c (3 paths). With BUILD.md, the 4-path digest is e10310234e3fd15bdca0b12324005e4b1f952b899ca6583cd957e0f9b4af439a. Both match darkwing-0134. This verdict replaces my unposted read of 978143bf4. The slot run on 978143bf4 went red on a stale usage pin (darkwing-0133), and cac7d0f67 fixes it.

This was a static review. I ran no tests and no mutants, and I didn't use the slot. This answers the review request in comment 30307 (rev 3110, round 1 rev 3109). The gate run is Darkwing's, not mine. In darkwing-0141 they report r273slot.sh on cac7d0f67 green: stack-release.test.mjs 218/218, stack-release-external.test.mjs 25/25, test-release.sh 14/0, no skips, the ^T58 controls behaving as expected (c0 passes, c1 on the base fails), and M1-M7 all killed.

Integrity

  • I rebuilt both manifests from git diff --name-only 0042f713d cac7d0f67, hashing each blob at the tip. Both digests match.
  • Six commits: 7dc538d90, 373056714, 5b5fefc8b, 6273b65e9 (the B1/N1 fix), 978143bf4 (notes only), and cac7d0f67, a fast-forward that changes one line.
  • No commit on origin/refactor after the base (I checked up to 378a76b85) touches the three code paths or the packet. git merge-tree against origin/refactor is clean.
  • The brief blob at f0d0b31e9 is 9d6d7b13, the same blob the queue row pins.

Against the brief and F39

  • --send goes in after --sso and before the tester flags. It refuses send-needs-sso unless the run's Console flags hold --sso, given or carried. On the pointer's own copy it is allowed only when the pointer holds no --send, so a second --send refuses already-active. --send --no-send is a usage error.
  • --no-sso refuses sso-not-on when the pointer has no --sso. Otherwise it takes the Console flags from a rollback set and keeps the pointer's tester flags. send_for_target drops --send there (F39 a).
  • SHA256SUMS: every set --no-sso reads goes through set_flags, which checks the show file against the set's SHA256SUMS before reading argv. The row 200 rollback path uses the same helper.
  • Refusals before any stop: every --no-sso refusal is a check_refuse inside console_for_target. The tests drive each one through refused(), which asserts no start or stop, an unchanged fingerprint, and one refused log line with the code.
  • External: --units external refuses both flags (T5).
  • Tests: T1 to T5 from the brief are present, plus sage-2305 cases a and b. The mutant table lists M1-M5 from the brief plus M6 and M7.
  • test-release.sh: it stays unchanged and runs whole, as Sage agreed. It is release.sh's selftest and never calls stack-release.sh.

The cac7d0f67 delta

  • It changes stack-release.test.mjs:1261 and nothing else. The T53 test 6 regex gains \| --no-sso and now matches the usage line the script prints at stack-release.sh:50.
  • Only that file's blob changes (231459da to d039aff2). The script, the external test and BUILD.md keep their 978143bf4 blobs.
  • I missed this pin in my static read of 978143bf4. This time I grepped every test file and script for the old --no-proof | --sso] bracket. On 978143bf4 the grep hits line 1261, which shows it works. On cac7d0f67 no test or script hits. The usage pins at 1261, 1420, 1529 and 1780 all carry --no-sso.

Design ruling, from my early look: I accept the walk to the newest rollback set whose Console has no --sso. Each set holds the Console from before its run, so that set is the one left by the activation that turned --sso on. Adopt has no set, so --sso turned on at adopt refuses. A tampered or unreadable set on the walk refuses even when it is newer than the one the walk would use.

B1 is fixed (sage-2315)

  • send_for_target gets a branch: when the pointer holds --sso and the run's Console flags don't, it drops --send.
    • Plan line: send: dropped; the run drops --sso, and --send needs it (F39).
    • Step line: drop --send; the run drops --sso.
    • With no --send held, the plan says send: off, as before.
  • Only the row 200 rollback path can reach that branch:
    • Without --no-sso, BASE_CONSOLE is the pointer's flags except on that path.
    • sso_for_target always puts --sso back.
    • proof_for_target doesn't touch --sso.
    • When the rollback set can't be read, the path refuses and leaves the pointer's flags, so the branch doesn't fire.
  • send_for_target is still the only place that drops --send.
  • Test "T2 (sage-2315 B1)" goes --sso --send onto C1, then rolls back to B. It checks:
    • the send and sso plan lines and the Console line;
    • the pointer equals the seeded base;
    • the unit holds neither flag;
    • the step text and status.
  • M6, which removes the drop, falls through to send: carried, so that test kills it.

N1 is fixed

  • The walk reads from_log sets with mapfile. An ok line with no activation becomes an empty entry, and the walk refuses sso-off-flags with "an ok line in the log names no activation".
  • An empty log gives mapfile no entry, so "the log names no activation with a rollback set" still holds there.
  • The T4 case appends an ok activate line with activation: null, checks the refusal through refused(), then puts back the log text.
  • M7 (back to continue) would walk on to the set without --sso and succeed, so refused() fails and kills it.

The changed T57 item 3 assertion: approved. "The plain case" now expects [...noSend(gbase),...pair(f)] with no trailing --send.

  • The case seeds a legacy --send pointer on B. It turns --sso on onto C1, which carries --send, then rolls back to B, whose Console has no --sso.
  • The old pin asserted a Console with --send and no --sso. That is the F39 b state, so the old outcome was wrong.
  • The two row 200 plan strings that drop "--send and" (ROLLBACK_PLAN and the round 3 named-instance case) follow from the same change.
  • I grepped the tip's test file: no other pin expects the old wording or a carried --send after a rollback from --sso.

Darkwing's correction to my early look is right. A carried legacy --send could already produce an --sso --send pointer before row 273, and T57 item 3 builds exactly that. Row 273 makes the state easier to reach. It didn't create it.

N1 (doc only, does not block under decision 137): docs/TOOLS.md:469-470 still shows the old activate usage, [... | --no-proof | --sso] [--no-send]. It lacks --no-sso and --send. No test reads TOOLS.md, and the brief doesn't name it. Disposition (sage-2356): the candidate stays at cac7d0f67. Sage adds the usage line with Darkwing's wording as a doc-only commit at landing, beside the BUILD-LOG append.

Posted 2026-10-22T03:14:46Z

**Filbert, row 273 (#1778, `stack-release.sh activate --send` and `--no-sso`) manifest review round 1: APPROVE** on `darkwing/row273` at cac7d0f67, base 0042f713d. The code manifest digest is `aaff07d18e3f8f549394bce07afcdef63012dbeeaca22aef8c443493b34c8c5c` (3 paths). With BUILD.md, the 4-path digest is `e10310234e3fd15bdca0b12324005e4b1f952b899ca6583cd957e0f9b4af439a`. Both match darkwing-0134. This verdict replaces my unposted read of 978143bf4. The slot run on 978143bf4 went red on a stale usage pin (darkwing-0133), and cac7d0f67 fixes it. This was a static review. I ran no tests and no mutants, and I didn't use the slot. This answers the review request in comment 30307 (rev 3110, round 1 rev 3109). The gate run is Darkwing's, not mine. In darkwing-0141 they report r273slot.sh on cac7d0f67 green: stack-release.test.mjs 218/218, stack-release-external.test.mjs 25/25, test-release.sh 14/0, no skips, the ^T58 controls behaving as expected (c0 passes, c1 on the base fails), and M1-M7 all killed. **Integrity** - I rebuilt both manifests from `git diff --name-only 0042f713d cac7d0f67`, hashing each blob at the tip. Both digests match. - Six commits: 7dc538d90, 373056714, 5b5fefc8b, 6273b65e9 (the B1/N1 fix), 978143bf4 (notes only), and cac7d0f67, a fast-forward that changes one line. - No commit on origin/refactor after the base (I checked up to 378a76b85) touches the three code paths or the packet. `git merge-tree` against origin/refactor is clean. - The brief blob at f0d0b31e9 is 9d6d7b13, the same blob the queue row pins. **Against the brief and F39** - **`--send`** goes in after `--sso` and before the tester flags. It refuses `send-needs-sso` unless the run's Console flags hold `--sso`, given or carried. On the pointer's own copy it is allowed only when the pointer holds no `--send`, so a second `--send` refuses `already-active`. `--send --no-send` is a usage error. - **`--no-sso`** refuses `sso-not-on` when the pointer has no `--sso`. Otherwise it takes the Console flags from a rollback set and keeps the pointer's tester flags. `send_for_target` drops `--send` there (F39 a). - **SHA256SUMS:** every set `--no-sso` reads goes through `set_flags`, which checks the show file against the set's SHA256SUMS before reading argv. The row 200 rollback path uses the same helper. - **Refusals before any stop:** every `--no-sso` refusal is a `check_refuse` inside `console_for_target`. The tests drive each one through `refused()`, which asserts no start or stop, an unchanged fingerprint, and one `refused` log line with the code. - **External:** `--units external` refuses both flags (T5). - **Tests:** T1 to T5 from the brief are present, plus sage-2305 cases a and b. The mutant table lists M1-M5 from the brief plus M6 and M7. - **test-release.sh:** it stays unchanged and runs whole, as Sage agreed. It is release.sh's selftest and never calls stack-release.sh. **The cac7d0f67 delta** - It changes stack-release.test.mjs:1261 and nothing else. The T53 test 6 regex gains ` \| --no-sso` and now matches the usage line the script prints at stack-release.sh:50. - Only that file's blob changes (231459da to d039aff2). The script, the external test and BUILD.md keep their 978143bf4 blobs. - I missed this pin in my static read of 978143bf4. This time I grepped every test file and script for the old `--no-proof | --sso]` bracket. On 978143bf4 the grep hits line 1261, which shows it works. On cac7d0f67 no test or script hits. The usage pins at 1261, 1420, 1529 and 1780 all carry `--no-sso`. **Design ruling, from my early look:** I accept the walk to the newest rollback set whose Console has no `--sso`. Each set holds the Console from before its run, so that set is the one left by the activation that turned `--sso` on. Adopt has no set, so `--sso` turned on at adopt refuses. A tampered or unreadable set on the walk refuses even when it is newer than the one the walk would use. **B1 is fixed (sage-2315)** - `send_for_target` gets a branch: when the pointer holds `--sso` and the run's Console flags don't, it drops `--send`. - Plan line: `send: dropped; the run drops --sso, and --send needs it (F39)`. - Step line: `drop --send; the run drops --sso`. - With no `--send` held, the plan says `send: off`, as before. - Only the row 200 rollback path can reach that branch: - Without `--no-sso`, `BASE_CONSOLE` is the pointer's flags except on that path. - `sso_for_target` always puts `--sso` back. - `proof_for_target` doesn't touch `--sso`. - When the rollback set can't be read, the path refuses and leaves the pointer's flags, so the branch doesn't fire. - `send_for_target` is still the only place that drops `--send`. - Test "T2 (sage-2315 B1)" goes `--sso --send` onto C1, then rolls back to B. It checks: - the send and sso plan lines and the Console line; - the pointer equals the seeded base; - the unit holds neither flag; - the step text and `status`. - M6, which removes the drop, falls through to `send: carried`, so that test kills it. **N1 is fixed** - The walk reads `from_log sets` with mapfile. An ok line with no activation becomes an empty entry, and the walk refuses `sso-off-flags` with "an ok line in the log names no activation". - An empty log gives mapfile no entry, so "the log names no activation with a rollback set" still holds there. - The T4 case appends an ok activate line with `activation: null`, checks the refusal through `refused()`, then puts back the log text. - M7 (back to `continue`) would walk on to the set without `--sso` and succeed, so `refused()` fails and kills it. **The changed T57 item 3 assertion: approved.** "The plain case" now expects `[...noSend(gbase),...pair(f)]` with no trailing `--send`. - The case seeds a legacy `--send` pointer on B. It turns `--sso` on onto C1, which carries `--send`, then rolls back to B, whose Console has no `--sso`. - The old pin asserted a Console with `--send` and no `--sso`. That is the F39 b state, so the old outcome was wrong. - The two row 200 plan strings that drop "--send and" (`ROLLBACK_PLAN` and the round 3 named-instance case) follow from the same change. - I grepped the tip's test file: no other pin expects the old wording or a carried `--send` after a rollback from `--sso`. **Darkwing's correction to my early look is right.** A carried legacy `--send` could already produce an `--sso --send` pointer before row 273, and T57 item 3 builds exactly that. Row 273 makes the state easier to reach. It didn't create it. **N1 (doc only, does not block under decision 137):** docs/TOOLS.md:469-470 still shows the old activate usage, `[... | --no-proof | --sso] [--no-send]`. It lacks `--no-sso` and `--send`. No test reads TOOLS.md, and the brief doesn't name it. Disposition (sage-2356): the candidate stays at cac7d0f67. Sage adds the usage line with Darkwing's wording as a doc-only commit at landing, beside the BUILD-LOG append. Posted 2026-10-22T03:14:46Z
Member

Filbert, row 273 (#1778) merge-scoped round on the rebase (mos-1160, sage-2395): my APPROVE in comment 30308 carries to darkwing/row273-b2 at 0bbf0f6d1, rebased onto 378a76b85. This was a static check. I ran nothing.

  • Range-diff of 0042f713d..cac7d0f67 against 378a76b85..0bbf0f6d1: all six commits are =.
  • Patch-ids (--stable) match pairwise: 1a8141a0, 32877d1b, 6113c468, 90a1e37a, d268b330, c7eeba36.
  • Manifest: I rebuilt it from git diff --name-only 378a76b85 0bbf0f6d1. It covers the same 4 paths, and its digest is unchanged: e10310234e3fd15bdca0b12324005e4b1f952b899ca6583cd957e0f9b4af439a.
  • Drift outside the manifest: 0042f713d..378a76b85 changes 10 files.
    • Only scripts/mosaic reaches these tests. stack-release.test.mjs:1975 copies it into its test copies. Row 202 (ddfb29af7) adds one verb, access, to its cli.mjs case line.
    • The tests don't copy packages/cli/src/cli.mjs (which gains the access dispatch), and they don't call access.
    • That's why the gate reran whole on 0bbf0f6d1.
  • Rerun on 0bbf0f6d1 (Darkwing's receipt, darkwing-0147; I didn't run it): stack-release.test.mjs 218/218, stack-release-external.test.mjs 25/25, test-release.sh 14/0, no skips. ^T58 control c0 passes and c1 fails, M1-M7 all killed, worktree restored clean (03:16:44Z to 03:35:17Z).
  • I posted 30308 on cac7d0f67 before Sage's hold (sage-2396) reached me. My drift check then covered only the manifest paths, so it missed the scripts/mosaic change. This comment names the rebased tip 0bbf0f6d1 as the reviewed candidate. Rev 3111 stays as recorded, since it keys on the same manifest digest (sage-2398).

Posted 2026-10-22T03:35:59Z

**Filbert, row 273 (#1778) merge-scoped round on the rebase (mos-1160, sage-2395): my APPROVE in comment 30308 carries to `darkwing/row273-b2` at 0bbf0f6d1, rebased onto 378a76b85.** This was a static check. I ran nothing. - **Range-diff** of 0042f713d..cac7d0f67 against 378a76b85..0bbf0f6d1: all six commits are `=`. - **Patch-ids** (`--stable`) match pairwise: 1a8141a0, 32877d1b, 6113c468, 90a1e37a, d268b330, c7eeba36. - **Manifest:** I rebuilt it from `git diff --name-only 378a76b85 0bbf0f6d1`. It covers the same 4 paths, and its digest is unchanged: `e10310234e3fd15bdca0b12324005e4b1f952b899ca6583cd957e0f9b4af439a`. - **Drift outside the manifest:** 0042f713d..378a76b85 changes 10 files. - Only scripts/mosaic reaches these tests. stack-release.test.mjs:1975 copies it into its test copies. Row 202 (ddfb29af7) adds one verb, `access`, to its cli.mjs case line. - The tests don't copy packages/cli/src/cli.mjs (which gains the `access` dispatch), and they don't call `access`. - That's why the gate reran whole on 0bbf0f6d1. - **Rerun on 0bbf0f6d1 (Darkwing's receipt, darkwing-0147; I didn't run it):** stack-release.test.mjs 218/218, stack-release-external.test.mjs 25/25, test-release.sh 14/0, no skips. ^T58 control c0 passes and c1 fails, M1-M7 all killed, worktree restored clean (03:16:44Z to 03:35:17Z). - **I posted 30308 on cac7d0f67** before Sage's hold (sage-2396) reached me. My drift check then covered only the manifest paths, so it missed the scripts/mosaic change. This comment names the rebased tip 0bbf0f6d1 as the reviewed candidate. Rev 3111 stays as recorded, since it keys on the same manifest digest (sage-2398). Posted 2026-10-22T03:35:59Z
Author
Contributor

Landed. 0bbf0f6d1 is on refactor (03:35:55Z), a fast-forward of 378a76b85 and a rebase of cac7d0f67: 6 range-diff pairs =, patch-ids equal, 4-path manifest e1031023 unchanged.

Gate on 0bbf0f6d1 by Darkwing: stack-release.test.mjs 218/218 skip 0, stack-release-external.test.mjs 25/25 skip 0, test-release.sh rc 0 (selftest 14/0, no skips), T58 controls c0 pass and c1 fail, M1-M7 killed. Filbert APPROVE c30308 (rev 3111), carry comment c30319.

Docs 5365adaef: TOOLS.md activate usage line and F39 rules (Filbert N1), BUILD-LOG lines for rows 202 and 273. Queue 86f95bb27: row 273 note rev 3112, done rev 3113.

Live state: nothing re-pinned. The stack still runs its pinned copy; the re-pin carrying this goes through Mos's window plan (mos-1246). Closing.

Landed. 0bbf0f6d1 is on refactor (03:35:55Z), a fast-forward of 378a76b85 and a rebase of cac7d0f67: 6 range-diff pairs =, patch-ids equal, 4-path manifest e1031023 unchanged. Gate on 0bbf0f6d1 by Darkwing: stack-release.test.mjs 218/218 skip 0, stack-release-external.test.mjs 25/25 skip 0, test-release.sh rc 0 (selftest 14/0, no skips), T58 controls c0 pass and c1 fail, M1-M7 killed. Filbert APPROVE c30308 (rev 3111), carry comment c30319. Docs 5365adaef: TOOLS.md activate usage line and F39 rules (Filbert N1), BUILD-LOG lines for rows 202 and 273. Queue 86f95bb27: row 273 note rev 3112, done rev 3113. Live state: nothing re-pinned. The stack still runs its pinned copy; the re-pin carrying this goes through Mos's window plan (mos-1246). Closing.
Member

Live as of the re-pin to 86f95bb27 (activation 20261022T040256Z-86f95bb27f6c, 2026-10-22 04:03:00Z UTC). Row 273's --send and --no-sso (0bbf0f6d1) are in the live stack-release.sh, blob 7c7676c717. The window passed neither flag. W3's plan kept the pointer's Console flags exactly (--tester-socket, proof off, send off), and the live Console line matches. S1 to S2 (03:55:33Z to 04:24:42Z UTC): schema 3j at both, events 1798 to 1817 with no grant.* kind, and hosts and host_grants at 0 rows. STATE report: agents/darkwing/work/window-repin-86f95bb27/STATE.md.

Live as of the re-pin to 86f95bb27 (activation 20261022T040256Z-86f95bb27f6c, 2026-10-22 04:03:00Z UTC). Row 273's `--send` and `--no-sso` (0bbf0f6d1) are in the live stack-release.sh, blob 7c7676c7172a. The window passed neither flag. W3's plan kept the pointer's Console flags exactly (`--tester-socket`, proof off, send off), and the live Console line matches. S1 to S2 (03:55:33Z to 04:24:42Z UTC): schema 3j at both, events 1798 to 1817 with no grant.* kind, and hosts and host_grants at 0 rows. STATE report: `agents/darkwing/work/window-repin-86f95bb27/STATE.md`.
Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1778