Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion vsl-msl/vsl-implementation-tracker.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ below; see [`msl-vsl-orchestration-kickoff.md`](msl-vsl-orchestration-kickoff.md
| T1.4 | M1 | consumer (VPNG) | 🟢 | **DONE 2026-06-16 — golden match against the INSTALLED routine, both engines.** New repo `vpng` (github.com/vista-cloud-dev/vpng, public, layer **v**, own `VPNG` namespace; reads m-stdlib+v-stdlib, edits neither). `$$ping^VPNG()` = `$$get^VSLCFG("VPNG GREETING","hello")` → `$$encode^STDJSON` → `{"greeting":"hello"}` (waterline-clean: never touches `^XPAR`/raw JSON). TDD red-first (safe-default stub → 0/2; green → golden passes); `VPNGTST` adds a seeded-`"world"` test so green≠default fallback (it files only test-in-place, the T1.2 def gotcha). Branch `t1.4-t1.5-vpng-m1` (`1ac6b59`, pushed). | T1.3 |
| T1.5 | M1 | consumer | 🟢 | **DONE 2026-06-16 — §12.1 determinism ledger GREEN, both engines (FIRST FULL VERTICAL).** Install-once base **MSL\*0.1\*1 → VSL\*1.0\*1 → VPNG\*1.0\*1** in dependency order (Required-Build chain genuinely present), each install status 3; verify all components present; **golden `{"greeting":"hello"}` BYTE-IDENTICAL on vehu (YDB) + foia-t12 (IRIS)**; test-in-place `VPNGTST` **3/3** against the installed routines (no `--routines`); uninstall reverse + verify-clean (`installed:false`, exit 3) → engine back to pre-install. All over the driver stack (no raw docker exec). vpng `make check-fast` green (fmt/lint/arch + namespaces + check-kids + engine-access; seam/icr/citation/msl-pin N/A — thin consumer); upstream m-stdlib/v-stdlib gates unregressed. **M1 DONE.** Memory: `vpng/docs/memory/t1.4-t1.5-vpng-m1.md`. | T1.4 |
| M2 | M2 | m-stdlib + v-stdlib | 🟡 | **Lane A DONE 2026-06-16 — `STDNET` socket leaf (S4), YDB loopback echo GREEN 9/9.** The MSL half: `STDNET` portable raw-TCP API (handle-based; `listen`/`accept`/`connect`/`read`/`write`/`close` + `available`/`boundport`) over the engine-native `SOCKET` device, `@seam STDNET` (6 verbs) emitted + bump-forcer green; `@tier optional`; `m arch check` layer m / G2 clean. YottaDB-only today (single-process loopback via the GT.M collection-of-sockets device; `/WAIT` auto-accepts); IRIS soft-skips (`$$available`=0, the owed `|TCP|`+`JOB` follow-up). m-stdlib branch `m2-stdnet` **merged to `master` (`f3e1f9c`) + released as MSL tag `v0.8.0`** (`d51084b`, 2026-06-16) — `v0.8.0:dist/seam-snapshot.json` carries `seams.STDNET`. **Lane B DONE 2026-06-16 — `VSLIO` binds STDNET to VistA's device handler (outbound TCP via `CALL^%ZISTCP`, ICR #2118).** v-stdlib branch `m2-vslio` (`db3c5e0`, pushed). Re-pinned `msl_ref` v0.7.0→**v0.8.0** (first real fetch-at-tag run; check-msl-pin green, 2 seams). VSLIO exposes the CLIENT subset of STDNET's signature (`connect`/`read`/`write`/`close`) — **VistA has NO Supported listen/accept API** (corpus-confirmed; inbound = the listener-JOB pattern), so the server side stays in portable STDNET (waterline, no dup). **Acceptance over the driver: vehu (YDB) 10/10** (tier-1 `CALL^%ZISTCP` POP=0 + tier-2 byte echo via a raw STDNET listener + VSLIO client) **· foia-t12 (IRIS) 6/6** (connect-failure proves `CALL^%ZISTCP` wired on IRIS; TLS-gap green; **loopback soft-skips** — STDNET's IRIS leg is the owed m-stdlib follow-up). 3 boundaries green (① check-msl-pin@v0.8.0 ② check-icr 4 [VSLCFG #2263 + VSLIO #2118] ③ check-citations 4); `make check-fast` clean. TLS gap **loud** (`$$tlsAvailable`=0, `$$connectTls` raises `U-VSLIO-NOTLS`); **tier-3 real TLS stays infra-blocked** (no cert / `XU*8.0*787`; the gating cleanup STDNET's discoveries row tracks). KEY: the gold doc's input-var convention for `CALL^%ZISTCP` is WRONG — it's argument-passed `CALL(IP,SOCK,TO)`. No KIDS/VSLBLD (M5). Memory: `v-stdlib/docs/memory/m2-vslio.md`. **M2 functionally complete for tiers 1–2; owed: STDNET IRIS leg + tier-3 TLS.** Kickoffs: [`../prompts/m2-vslio-kickoff.md`](../prompts/m2-vslio-kickoff.md), [`../prompts/m2-lane-b-vslio-kickoff.md`](../prompts/m2-lane-b-vslio-kickoff.md). | T1.5 |
| M3 | M3 | m-stdlib + v-stdlib | 🟡 | **DONE (adapter) 2026-06-16 — the storage seam (S1) proven dual-engine.** **Lane A — `STDKV` (MSL storage leaf):** resolved design Q3 — the storage seam is a **NEW minimal MSL module** (a record store over `(coll,key,field)`), **not** a `STDFS` sub-API (STDFS stays filesystem-only). Four `$$` verbs (`set`/`get`/`exists`/`kill`), `@seam STDKV` (4 entry points, bump-forcer green), global-backed reference impl, **dual-engine GREEN 12/12** (YDB + IRIS, no `$ZVERSION` arm, byte-exact). m-stdlib branch `m3-stdkv` (`d22ff1b`) **released as MSL tag `v0.9.0`** (`497c678`) — `v0.9.0:dist/seam-snapshot.json` carries `seams.STDKV`. **Lane B — `VSLFS` binds STDKV→FileMan DBS:** `$$set`=`UPDATE^DIE` (returns resolved IENS; `"+1,"` adds), `$$get`/`$$exists`=`$$GET1^DIQ`, `$$kill`=`FILE^DIE` with FDA **`.01="@"`** (**corpus-confirmed: NO `DELETE^DIE`**; `^DIK`/direct KILL forbidden). v-stdlib branch `m3-vslfs` (`8b5839a`, pushed; **stacked on `m2-vslio`** — merge order m2→m3). Re-pinned `msl_ref` v0.8.0→**v0.9.0** (check-msl-pin green, 3 seams). **Acceptance over the driver: vehu (YDB) 7/7 · foia-t12 (IRIS) 7/7** — create→get byte-identical, exists, kill, and a **`DIERR`→`,U-VSL-FS-DIERR,` `$ECODE`** with detail in `$$lastError` (MSG_ROOT="ERR" keeps errors private). Test file = an **existing low-risk file (#8989.51**, free-text `.01`, no other required fields → safe ZZ throwaway record) — **the FileMan DD-install is decoupled and deferred to a v-pkg track**. Full v-stdlib suite **22/22**, no VSLCFG/VSLIO regression. 3 boundaries green (① check-msl-pin@v0.9.0 ② **check-icr 8** ③ **check-citations 8** vs gold corpus); `make check-fast` clean. **ICR is notional:** the FileMan DBS API has no ICR number in the gold corpus and the DBIA registry is a human-curated FORUM list, not enforced programmatically → `gen-icr.py` now accepts a notional `@icr DBS` marker (plan §5.4 amended; the gate's real invariants — Supported + no-direct-global — stay). No KIDS/VSLBLD (M5). Memory: m-stdlib `m3-stdkv-storage-seam.md`, v-stdlib `m3-vslfs.md`, shared `notional-dbia-not-a-blocker.md`. **Owed: the v-pkg FileMan-DD-install enabler (re-test with a dedicated throwaway file) + merge m2/m3.** Kickoff: [`../prompts/m3-vslfs-kickoff.md`](../prompts/m3-vslfs-kickoff.md). | M2 |
| M3 | M3 | m-stdlib + v-stdlib | 🟡 | **DONE (adapter) 2026-06-16 — the storage seam (S1) proven dual-engine.** **Lane A — `STDKV` (MSL storage leaf):** resolved design Q3 — the storage seam is a **NEW minimal MSL module** (a record store over `(coll,key,field)`), **not** a `STDFS` sub-API (STDFS stays filesystem-only). Four `$$` verbs (`set`/`get`/`exists`/`kill`), `@seam STDKV` (4 entry points, bump-forcer green), global-backed reference impl, **dual-engine GREEN 12/12** (YDB + IRIS, no `$ZVERSION` arm, byte-exact). m-stdlib branch `m3-stdkv` (`d22ff1b`) **released as MSL tag `v0.9.0`** (`497c678`) — `v0.9.0:dist/seam-snapshot.json` carries `seams.STDKV`. **Lane B — `VSLFS` binds STDKV→FileMan DBS:** `$$set`=`UPDATE^DIE` (returns resolved IENS; `"+1,"` adds), `$$get`/`$$exists`=`$$GET1^DIQ`, `$$kill`=`FILE^DIE` with FDA **`.01="@"`** (**corpus-confirmed: NO `DELETE^DIE`**; `^DIK`/direct KILL forbidden). v-stdlib branch `m3-vslfs` (`8b5839a`, pushed; **stacked on `m2-vslio`** — merge order m2→m3). Re-pinned `msl_ref` v0.8.0→**v0.9.0** (check-msl-pin green, 3 seams). **Acceptance over the driver: vehu (YDB) 7/7 · foia-t12 (IRIS) 7/7** — create→get byte-identical, exists, kill, and a **`DIERR`→`,U-VSL-FS-DIERR,` `$ECODE`** with detail in `$$lastError` (MSG_ROOT="ERR" keeps errors private). Test file = an **existing low-risk file (#8989.51**, free-text `.01`, no other required fields → safe ZZ throwaway record) — **the FileMan DD-install is decoupled and deferred to a v-pkg track**. Full v-stdlib suite **22/22**, no VSLCFG/VSLIO regression. 3 boundaries green (① check-msl-pin@v0.9.0 ② **check-icr 8** ③ **check-citations 8** vs gold corpus); `make check-fast` clean. **ICR is notional:** the FileMan DBS API has no ICR number in the gold corpus and the DBIA registry is a human-curated FORUM list, not enforced programmatically → `gen-icr.py` now accepts a notional `@icr DBS` marker (plan §5.4 amended; the gate's real invariants — Supported + no-direct-global — stay). No KIDS/VSLBLD (M5). Memory: m-stdlib `m3-stdkv-storage-seam.md`, v-stdlib `m3-vslfs.md`, shared `notional-dbia-not-a-blocker.md`. **ALL MERGED to default branches 2026-06-16:** m-stdlib `m3-stdkv`→`master` (**PR #17**, carries tag `v0.9.0`); v-stdlib `m2-vslio`→`main` (**PR #4**) then `m3-vslfs`→`main` (**PR #5**); docs `coordination`→`main` (**PR #2**). Merged `main` re-verified **22/22** (vehu); `make check-fast` clean. **Remaining owed (separate, deferred):** the v-pkg FileMan-DD-install enabler (re-test VSLFS with a dedicated throwaway file) + the M2 tail (STDNET IRIS leg + tier-3 TLS). Kickoff: [`../prompts/m3-vslfs-kickoff.md`](../prompts/m3-vslfs-kickoff.md). | M2 |
| M4 | M4 | v-stdlib | ⬜ | VSLSEC bind + VSLLOG audit | M3 |
| M5 | M5 | v-stdlib | ⬜ | VSLTASK self-restart + VSLBLD full install/back-out | M4 |
| M6 | M6 | consumer + v-stdlib | ⬜ | VWEB FHIR GET /Patient over HTTPS, both engines | M5 |
Expand Down Expand Up @@ -133,6 +133,7 @@ in that file.
- 2026-06-16 — **T1.2 DONE — VSLCFGTST GREEN 3/3 on BOTH engines (the harness blocker fixed in m-cli); M1 vertical's first VSL* module complete.** The spike ([`../prompts/t1.2-harness-routine-base-spike.md`](../prompts/t1.2-harness-routine-base-spike.md)) found the routine-base drop was in **m-cli's internal DockerEngine** (`m test --docker`), NOT the m-ydb driver: `DockerRunner` exported `ydb_routines="<stageDir> $ydb_routines"`, but a GT.M VistA (`vehu`) sets `gtmroutines` not `ydb_routines`, so the export went stageDir-only and (GT.M honors `ydb_routines` over `gtmroutines`) vehu's resident XPAR/FileMan routines vanished → suite aborted **0/0**. **Fix (m-cli `docker-routines-base` `d9ee76a`, pushed):** extract `dockerEnvPrefix` + fall back to `${ydb_routines:-$gtmroutines}`; TDD red→green table test; m-test-engine regression green; `make lint`+`go test ./...` clean. **Acceptance gate met: `VSLCFGTST` `0/0→3/3` GREEN on `vehu` (YDB) AND `foia-t12` (IRIS `--namespace VISTA`)** via the driver stack — no `M_YDB_*` host vars needed (the container `bash -l` env supplies `gtmgbldir`+`gtmroutines`; IRIS needed no change — namespace-resident routines). The three determinism boundaries stay green (re-pin MSL v0.7.0 / `check-icr` #2263 / `check-citations`). v-stdlib `t1.2-vslcfg` `e1f1aa8`; m-cli `docker-routines-base` `d9ee76a`; both pushed, unmerged. **Unblocks ALL VistA-dependent `VSL*TST` testing over `m test --docker`** (T1.3 VSL KIDS base, T1.4 VPNG, …). Memories: m-cli `docker-routines-gtmroutines-fallback`, v-stdlib `t1.2-vslcfg`. **Next: T1.3** (VSL KIDS base — `VSL*` + the PARAMETER DEFINITION component, install/uninstall clean both engines).
- 2026-06-16 — **T1.3 DONE — VSL KIDS base installs/uninstalls clean on BOTH engines (M1 vertical's installable VSL layer).** v-stdlib branch `t1.3-vsl-kids`. Packaged the VSL layer as `kids/vsl.build.json` = **`VSLCFG` routine + a `VPNG GREETING` #8989.51 PARAMETER DEFINITION** (SYS entity 4.2, free text) **+ a Required Build on `MSL*0.1*1`** (action `DON'T INSTALL, LEAVE GLOBAL`; MSL base name read from `m-stdlib/kids/std.build.json`; **pin stays MSL v0.7.0**, no new tag). Built the **normalized export** with the **KRN-capable v-pkg standalone** (built from v-pkg `main` `2a3f273`, which merged the #8989.51 KRN-component + Required-Build capability) → `routines:1 paramDefs:1 requiredBuilds:1`, committed at `dist/kids/VSL.kids`; wired **`make kids`/`make check-kids`** (deterministic build twice → byte-identical + golden diff vs committed; SKIP-green when v-pkg absent, mirroring `check-citations`) into the `gates` aggregate; `v-pkg roundtrip` clean (54 pairs). **Acceptance gate met: install→verify→uninstall→verify-clean GREEN on BOTH engines OVER THE DRIVER** (`v-pkg`, not `m test`): **vehu** (YDB, `--engine ydb --transport docker` + `M_YDB_GBLDIR`/`M_YDB_ROUTINES`) and **foia-t12** (IRIS, `--engine iris --transport docker` + `M_IRIS_CONTAINER=foia-t12 M_IRIS_NAMESPACE=VISTA M_IRIS_IRIS_INSTANCE=IRIS`) — install reports `installed:true status:3`, verify reports `routines.VSLCFG:true` + `params."VPNG GREETING":true`, uninstall `uninstalled:true`, verify-clean `installed:false` (routine+param both false, exit 3). **Decisions:** (1) param NAME = **`VPNG GREETING`** (the consumer's name; matches VSLCFG.m's committed doc example + its default `"hello"` → T1.4's golden `{"greeting":"hello"}`), NOT the kickoff's illustrative "VSL GREETING"; T1.3 installs the **empty DEFINITION only** (T1.4 seeds/reads the value). (2) Required-build **posture (a)** — the Required Build is **emitted** into #9.6/MBREQ (faithful drift-gated artifact) but **NOT enforced** at install: v-pkg's direct-populate install bypasses the interactive KIDS LOAD where the prereq check fires; the faithful "install-once base" ordering (posture (b), install MSL base first) is deferred (relevant to T1.4/T1.5 test-in-place). `make check-fast` green (fmt/lint/arch + all 7 drift gates incl. check-kids); T1.2's three determinism boundaries unregressed; VSLCFG.m/VSLCFGTST.m untouched. Memory: `v-stdlib/docs/memory/t1.3-vsl-kids.md`. **Next: T1.4** (`VPNG` consumer — `$$ping^VPNG()`==`{"greeting":"hello"}`, KIDS Requires the VSL base) → T1.5 (M1 exit gate, determinism ledger byte-identical both engines).
- 2026-06-16 — **T1.4 + T1.5 DONE — M1 COMPLETE: the first full vertical `STDENV→VSLCFG→VPNG` is proven byte-identical on both engines.** New repo **`vpng`** (github.com/vista-cloud-dev/vpng, public, layer **v**, own `VPNG` namespace; branch `t1.4-t1.5-vpng-m1` `1ac6b59`, pushed). Reads m-stdlib + v-stdlib (stages src / installs their KIDS bases), **edits neither**. **VPNG** (one routine): `$$ping^VPNG()` = `$$get^VSLCFG("VPNG GREETING","hello")` → `$$encode^STDJSON(.root)` → `{"greeting":"hello"}` — waterline-clean (it calls the VSL adapter + the MSL encoder; never touches `^XPAR` or hand-builds JSON). TDD red-first (safe-default stub → `0/2`; green → golden passes). **`VPNGTST` seeds a distinct `"world"`** (not just the default) so green≠default fallback — and that seeded read only **files test-in-place** (the VSL base installs the `#8989.51` def; a hand-built def won't FILE — the T1.2 gotcha). **T1.5 = the §12.1 determinism ledger, install-once base, both engines:** install **`MSL*0.1*1` → `VSL*1.0*1` → `VPNG*1.0*1`** in dependency order (Required-Build chain genuinely present), each `status:3`; verify all components present; **golden `{"greeting":"hello"}` BYTE-IDENTICAL on vehu (YDB) + foia-t12 (IRIS)** via `m vista exec`; **test-in-place `VPNGTST` 3/3** against the installed routines (NO `--routines` staging) both engines; **uninstall reverse VPNG→VSL→MSL + verify-clean** (`installed:false`, exit 3) → engine back to pre-install. All over the driver stack (`v-pkg` + `m vista exec` + `m test --docker`; no raw docker exec). **Gates (thin consumer):** `make check-fast` = fmt/lint + `m arch check` (layer v) + `check-namespaces` (VPNG prefix) + `check-kids` (`dist/kids/VPNG.kids` deterministic + golden; `v-pkg roundtrip` clean, 29 pairs) + `check-engine-access`; seam/icr/citation/msl-pin gates **N/A** (no `@seam`, no direct L4 call). Upstream v-stdlib/m-stdlib gates re-run green (unregressed). **Gotchas captured** (vpng memory): `m test` needs explicit `--routines src` (no auto-stage) but test-in-place uses **none**; `m test` uses `--docker`/`--namespace` (internal DockerEngine) while `v-pkg`/`m vista exec` use `--transport docker` + `M_*` driver env (two engine paths — don't cross flags); `v-pkg verify` on a clean engine prints two JSON objects (data + exit-3 envelope). Memory: `vpng/docs/memory/t1.4-t1.5-vpng-m1.md`. **M1 DONE — next is M2** (VSLIO TLS echo; the per-seam horizontal build-out, §12.2). Kickoff: [`../prompts/t1.4-vpng-consumer-kickoff.md`](../prompts/t1.4-vpng-consumer-kickoff.md).
- 2026-06-16 — **M3 DONE + ALL MERGED — the storage seam (S1) proven dual-engine and landed on every default branch.** **Lane A `STDKV`** (m-stdlib): a NEW minimal MSL record-store module (`$$set`/`$$get`/`$$exists`/`$$kill` over `(coll,key,field)`, `@seam STDKV`, global-backed reference impl) — resolved design **Q3** (a record store, NOT a `STDFS` sub-API). Dual-engine GREEN 12/12 (YDB+IRIS, byte-exact, no `$ZVERSION` arm); full `make test` 46 suites/2448 assertions. Released as MSL tag **`v0.9.0`**. **Lane B `VSLFS`** (v-stdlib): binds STDKV → FileMan DBS — `$$set`=`UPDATE^DIE` (returns resolved IENS; `"+1,"` adds), `$$get`/`$$exists`=`$$GET1^DIQ`, `$$kill`=`FILE^DIE` with FDA **`.01="@"`** (**corpus-confirmed: no `DELETE^DIE`**; `^DIK`/direct KILL forbidden). Dual-engine GREEN **7/7** (vehu+foia-t12) over an existing low-risk file (**#8989.51**, free-text `.01`, no other required fields → safe ZZ throwaway record; **DD-install decoupled/deferred to a v-pkg track**); DIERR→**`,U-VSL-FS-DIERR,`** `$ECODE` + `$$lastError` (MSG_ROOT="ERR" keeps errors private). Re-pin `msl_ref` v0.8.0→**v0.9.0**; 3 boundaries green (check-msl-pin / check-icr 8 / check-citations 8). **ICR is NOTIONAL** (user directive): the FileMan DBS API has no ICR number in the gold corpus and the DBIA registry is a human-curated FORUM list, not enforced programmatically → `gen-icr.py` accepts a notional `@icr DBS` marker (plan **§5.4** amended; gate's real invariants — Supported + no-direct-global — stay); shared memory `notional-dbia-not-a-blocker.md`. **Merged to default branches:** m-stdlib `m3-stdkv`→`master` (**PR #17** w/ tag `v0.9.0`); v-stdlib `m2-vslio`→`main` (**PR #4**) + `m3-vslfs`→`main` (**PR #5**); docs `coordination`→`main` (**PR #2**). Merged v-stdlib `main` re-verified **22/22** (vehu); all `check-fast` clean. Memories: m-stdlib `m3-stdkv-storage-seam.md`, v-stdlib `m3-vslfs.md`, shared `notional-dbia-not-a-blocker.md`. **Next: M4** (VSLSEC + VSLLOG — security + audit seams, §12.2; VSLLOG reuses this FileMan-DBS binding for the S3 audit sink). Owed (deferred, non-blocking): the v-pkg FileMan-DD-install enabler + the M2 tail (STDNET IRIS leg + tier-3 TLS).

---

Expand Down
Loading