• - single ReAct entry for all free text: 7 fixed tools (useSkill + 6);
      flow knowledge lives in 5 skill files (resources/skills/*.md, first
      line = brief for prompt index; xly.skills.dir overrides for hot reload)
    - useSkill returns skill body and logs skill_active; projection pins the
      active skill full text on the flow card until confirm/cancel/new skill
    - system prompt from template prompts/system.txt (domain map + skill
      index); bench reads the same files to avoid replica drift
    - delete IntentService/Intent/SlotFillService/LlmJsonClient/StateService/
      OkHttpUtil and route()/handleCreate/handleWrite/deriveWriteAction/
      ground/withState; dimension-split regex migrated into FormCollectTool
      prefill assist (model provably fails dimension splitting)
    - anti-fabrication guards now unconditional (zero-tools+digits retry,
      WRITE_CLAIM check); invariant layer and button endpoints untouched
    - bench_ext: --arch new (same-source prompt/skills) and --fifty
      (bench50 cases judged on full trajectory for both arches)
    zichun authored
     
    Browse Code »
  • - chat:ledger becomes the only conversation store: model messages land as
      user/tool_call(payload)/tool_result/ai events via EventLogChatMemory
      (per-event rightPush, no more whole-blob read-modify-write races)
    - EventProjectionService: one renderer for both frontend history and LLM
      context (system+flow card / deterministic digest of expired turns /
      ~6000-char verbatim recent turns, current turn payload-exact)
    - pinned active-flow card (form pending / proposal pending / skill_active
      full text) unpinned on executed/cancelled/skill_done
    - anti-fab retry nudges logged as internal user events (LLM-visible,
      hidden from history); grounded suffixes never duplicate user events
    - delete ProjectedChatMemory; RedisChatMemoryStore demoted to legacy
      read-only compat (old convs age out via 30d TTL); conv list lazy cleanup
    - tests: projection correctness + concurrent stream/confirm append safety
    zichun authored
     
    Browse Code »
  • First tests in the repo — they pin the audit fixes that are easiest to silently
    regress: no identity without introspection, no conversation across users, no
    silent numeric corruption, no tenant-less FK query.
    zichun authored
     
    Browse Code »