• feat(#19): ephemeral-template (Echo) session creation

    vh released this 2026-07-18 12:02:18 -07:00 | 75 commits to main since this release

    create_session could only mint foundational sessions; an ephemeral template
    (agent_id="echo") returned 422 ephemeral_requires_config because ratatoskr never
    sent the required config block — Echo was uncreatable, surfacing as an opaque
    session_api_failed at the CLI. Thread an opaque, role/model-agnostic config
    passthrough through the create path so Echo sessions are creatable.

    • sessions.py: create_session(config=...) verbatim passthrough (PRE-004 Mapping /
      PRE-005 config-xor-bifrost guards); SessionInfo gains kind + config, captured
      defensively (.get) on both create and list.
    • cli.py: --system-prompt flag builds config={"system_prompt": ...} (validation:
      non-empty, requires --new+--agent, xor bifrost); _amain surfaces kind=; the
      --whoami renderer now reads allowed_roles/default_role (was reading the dead
      allowed_models/default_model) and tolerates a malformed capabilities shape.
    • contract #2 amended (Amendment 2026-07-18); Heid-panel contract-reviewed +
      diff-scoped bug-hunted (one whoami null-join gap found + fixed).

    Canonical grounding: config.role, never config.model (worldtree-dev althing
    01KXT976NN91DRBZBPXNZ2BVZR; ADR-0012 role cutover). Verified end-to-end against
    the live v0.16.2 target. TDD across create + CLI; full suite green (534).

    Closes #19.

    Downloads