Skip to content

M3 Lane B: VSLFS — FileMan DBS storage adapter (S1 seam)#5

Merged
rafael5 merged 1 commit into
mainfrom
m3-vslfs
Jun 16, 2026
Merged

M3 Lane B: VSLFS — FileMan DBS storage adapter (S1 seam)#5
rafael5 merged 1 commit into
mainfrom
m3-vslfs

Conversation

@rafael5

@rafael5 rafael5 commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Binds the MSL STDKV storage seam (MSL v0.9.0) to VistA's FileMan DBS API (UPDATE^DIE / $$GET1^DIQ / FILE^DIE). $$set/$$get/$$exists/$$kill over (file,iens,field); kill via FDA .01="@" (no DELETE^DIE exists). DIERR -> ,U-VSL-FS-DIERR, $ECODE. Dual-engine GREEN 7/7 (vehu + foia-t12) over #8989.51; suite 22/22, no regression. ICR notional (@iCr DBS marker; gen-icr.py taught NOTIONAL_MARKERS). 3 boundaries + check-fast green. See docs/memory/m3-vslfs.md.

🤖 Generated with Claude Code

Binds the MSL STDKV storage seam (MSL v0.9.0) to VistA's FileMan Database
Server (DBS) API above the m/v waterline — the same four-verb signature
($$set/$$get/$$exists/$$kill over (file,iens,field)), backed by DBS calls,
never direct global access.

- $$set = UPDATE^DIE (handles "+1," add and in-place file; returns the
  resolved IENS). $$get/$$exists = $$GET1^DIQ (a DIERR on a read is not an
  error -> default / 0). $$kill = FILE^DIE with FDA .01="@" (corpus-confirmed:
  there is NO DELETE^DIE; ^DIK/direct KILL are forbidden).
- Error contract (loud): a DIERR on a write -> ,U-VSL-FS-DIERR, $ECODE with
  the DIERR text in ^TMP($job,"vslfs","err") for $$lastError; every DBS call
  passes MSG_ROOT="ERR" so errors stay in the adapter's own array.
- Dual-engine GREEN 7/7 (vehu YDB + foia-t12 IRIS) over an existing low-risk
  file (#8989.51, free-text .01, no other required fields -> a safe ZZ-namespaced
  throwaway record; no DD install). No $ZVERSION arm (FileMan DBS is portable).
  Full v-stdlib suite 22/22 — no VSLCFG/VSLIO regression.
- Re-pin msl_ref v0.8.0 -> v0.9.0 (check-msl-pin green, 3 seams).
- 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 (real @status/@source kept);
  the gate's invariants stay (Supported + no-direct-global). check-icr 8 /
  check-citations 8 vs gold corpus / check-msl-pin v0.9.0 all green; check-fast clean.

Branch stacked on m2-vslio (unmerged) — it carries the Makefile test-routines
fix and the icr/pin tooling; branching off main would regress VSLIO.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rafael5 rafael5 merged commit e019c1b into main Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant