Vyasa KG — ACL (viewer-mask) Engine + UI Handoff Prompt

Bugs / gaps encountered (real, verified)URL copied

  1. cls folds to one value. fold treats non-relation attrs as scalar latest-wins, so a multi-class node collapses. Verified: nodes | where id=d_brd | select cls → cls_eng only, though facts | where a=cls | where e=d_brd → all 3. The mask must read raw cls facts.
  1. Entity key in fold record is id, not e. nodes | where e=<id> returns 0 rows. Use where id=<id>. (e only exists on the raw facts/diff streams.)
  1. DSL filters tokenize on whitespace. where owner=Rajesh Illuri parses Illuri as a stray token → 0 rows. No quoting support. Use ~ (contains): where owner~Rajesh. This is why the @acl person syntax uses = as an explicit delimiter — preserve that when parsing.
  1. @acl is currently inert. The generator skips unknown @-sections, so the authored block compiles to nothing yet. Safe, but step 1 above is what activates it.
  1. Raw diff is noisy (~92 changed facts between adjacent days). Not an ACL bug, but any per-viewer "what changed for me" view must filter by attribute (stage/status) after masking.
  1. Sandbox quirk: a leading cd in a shell command triggers a noisy directory listing in tool output. Use absolute paths / shell vars instead.