memory: apps leave Rata to a new repo — arbo-fork/SillyTavern resolved
Operator ruled: no arbo fork, no SillyTavern-on-Rata; both app products move to a new repo (template-dev standing up). Rata does NOT fork and reverts to its core (Worldtree debug surface + Bifrost reference impl + Conversation-API SDK #371 seed/future-consumer). Retires the 2026-07-17 fork-Rata-for-arbo NEXT-MAJOR plan; resolves the arbo-vs-SDK open question the prior snapshot flagged.
This commit is contained in:
+49
-60
@@ -44,83 +44,70 @@ upstream API key stays server-side (INV-003).
|
||||
|
||||
## Current state / in-flight
|
||||
|
||||
_As of 2026-07-18:_
|
||||
_As of 2026-07-18 (evening):_
|
||||
|
||||
**▶️ NEW MAJOR — Worldtree Conversation API SDK (#371) + a SillyTavern-style chat app.**
|
||||
Operator wants a SillyTavern-like chat app on Worldtree; the "fork Rata?" question resolved to
|
||||
**don't fork**. Instead: **Worldtree owns an official Conversation API client SDK** (dedicated repo,
|
||||
elevated onto WT's pre-v1 track, tracking issue **WT #371**), **seeded from Rata's client spine**
|
||||
(`sse_client`/`sessions`/`tier3`); the chat app is a **fresh TS SIBLING** consuming that SDK, NOT a
|
||||
fork of Rata. TS package ships first — **Rata's own repin rides the later Python milestone**;
|
||||
internal-registry-only distribution. **template-dev is standing up the app repo** (consult expected).
|
||||
Rata's contributions shipped this session: the parity-matrix usage inventory (→ WT
|
||||
**✅ RESOLVED — the "app product" workstreams leave Rata entirely (operator 2026-07-18).**
|
||||
**No arbo fork, no SillyTavern-on-Rata** — a NEW repo (template-dev standing up) takes over BOTH
|
||||
app-product ideas. Rata does NOT fork into anything and is NOT the base for any chat / image-gen app.
|
||||
Rata reverts to its core identity: **the Worldtree Conversation-API debug-observability surface +
|
||||
the Bifrost Tier-3 reference impl + the Conversation-API SDK seed / future-consumer.** Supersedes the
|
||||
2026-07-17 "fork Rata for arbo" NEXT-MAJOR plan (that plan is retired; arbo API intel lives in the
|
||||
Recent-decisions detail trail if the new repo wants it).
|
||||
|
||||
**▶️ Rata's live stake in the Worldtree SDK (#371).** The SillyTavern *app* moved out, but Rata
|
||||
stays the **SDK's seed donor + a future consumer**: Worldtree owns the official Conversation API SDK
|
||||
(dedicated repo, elevated pre-v1 track, **WT #371**), seeded from Rata's client spine
|
||||
(`sse_client`/`sessions`/`tier3`); TS ships first, **Rata's repin rides the later Python milestone**;
|
||||
internal-registry-only. This session Rata shipped the parity-matrix inventory (→ WT
|
||||
`docs/sdk/parity-matrix.md` `698cfc3`, behavioral-spec `c999b5f`, fixture corpus `3019ee6` = 66
|
||||
fixtures), the issue-#1 contract drift fix (`4bd9abd`), and the personal-WT endpoint for fixture
|
||||
capture. WT-side pipeline: behavioral-spec ✓ / parity-matrix ✓ / fixture-corpus ✓ → next is the
|
||||
**codegen spike (d)**. **Three SDK divergences pinned for our eventual repin:** D-1 (unknown SSE
|
||||
event → skip+diagnostics-hook, vs our current hard-raise in `_envelope_for_type`), D-2 (open-world
|
||||
enums), D-3 (typed eager `410 session_retired`). Full arc →
|
||||
fixtures), the issue-#1 contract drift fix (`4bd9abd`), and the personal-WT endpoint. WT pipeline:
|
||||
behavioral-spec ✓ / parity-matrix ✓ / fixture-corpus ✓ → next is the **codegen spike (d)**. Three
|
||||
divergences pinned for our eventual repin: D-1 (unknown SSE event → skip+diagnostics-hook vs our
|
||||
current hard-raise), D-2 (open-world enums), D-3 (typed eager `410 session_retired`). Full arc →
|
||||
`persistent-memory.d/2026-07-18-worldtree-sdk-371-and-sillytavern-app.md`.
|
||||
- **⚠️ OPEN Q for operator (priority):** how does this relate to the arbo-fork below? Different
|
||||
products (arbo = image-gen off ComfyUI; SillyTavern = chat off Worldtree), so no literal conflict
|
||||
— but is SillyTavern/SDK now the priority app, additive-to arbo, or does this session's
|
||||
don't-fork/sibling pattern change the arbo-fork plan? NOT resolved this session; preserved both.
|
||||
- **Awaiting operator:** explicit go on the fixture-capture run + which instance (demo vs personal)
|
||||
— worldtree-dev is holding on your call. Also awaiting template-dev's app-repo-standup consult.
|
||||
- **Awaiting operator:** explicit go on the SDK **fixture-capture run + which instance (demo vs
|
||||
personal)** — worldtree-dev is holding on your call.
|
||||
|
||||
**▶️ NEXT MAJOR (operator call 2026-07-17, PRESERVED): FORK ratatoskr for arbo image-gen.** The
|
||||
arbo debug-observability idea did NOT become a feature bolted onto ratatoskr; ratatoskr stays the
|
||||
Worldtree debug surface, the **arbo image-gen product becomes a FORK of ratatoskr** (clean chat-first
|
||||
surface, debug panes hidden by default). "Get ready to assist with fork" is the standing directive.
|
||||
**arbo API intel** (comfy-dev 2026-07-17): validated-workflow-library REST API — `GET /workflows` →
|
||||
`POST /workflows/{id}/run` → 202 JobHandle → **poll** `GET /jobs/{id}` (NO SSE) → `outputs[].url`;
|
||||
Bearer via infra-ops `ENGINE_TOKEN`; deploy `irv-ml1:8201` WireGuard-only; canonical doc
|
||||
`vh/arbo:docs/rest-api.md` v1.4.27 + `/openapi.json`. (See the OPEN Q above re: arbo vs SDK/sibling.)
|
||||
|
||||
**✅ Pre-fork UI prep SHIPPED (v0.20.17, `c678853`, NOT pushed).** Web console left+right debug panes
|
||||
independently collapsible/hideable (chevron → 22px re-open strip, `#center` reflows, per-pane
|
||||
localStorage); both collapsed = the clean chat surface a fork starts from. Playwright-verified.
|
||||
|
||||
**⚠️ TUI DEPRECATED (operator 2026-07-17) — rip pending, surgical not a clean delete.** `tui.py` +
|
||||
`tests/test_tui.py` delete cleanly, BUT `cli.py` is SHARED (`web/entrypoint.py` + `tier3.py` import
|
||||
`USER_AGENT`; `cli.py` holds `ParsedArgs`/`_format_duration_ms`/`_format_usage`). OPEN SCOPE Q: remove
|
||||
textual-only (`tui.py`) vs the whole terminal interface (relocate shared consts out of `cli.py`
|
||||
first). Breaking public-surface removal → minor bump (operator approval).
|
||||
**⚠️ TUI DEPRECATED (operator 2026-07-17) — web supersedes it; rip pending, surgical.** Independent
|
||||
of any fork (the web console is now THE interactive surface). `tui.py` + `tests/test_tui.py` delete
|
||||
cleanly, BUT `cli.py` is SHARED (`web/entrypoint.py` + `tier3.py` import `USER_AGENT`; `cli.py` holds
|
||||
`ParsedArgs`/`_format_duration_ms`/`_format_usage`). OPEN SCOPE Q: remove textual-only (`tui.py`) vs
|
||||
the whole terminal interface (relocate shared consts out of `cli.py` first). Breaking public-surface
|
||||
removal → minor bump (operator approval). (The v0.20.17 collapsible debug panes, `c678853`, are now
|
||||
just a web-console feature — the "pre-fork" framing is moot.)
|
||||
|
||||
**✅ #368 (user,character) memory silo test — DONE, PASSED live (WT b127).** The reason for the
|
||||
pre-session clear; closed. Write+read isolation proven end-to-end (conjunctive `{end_user,
|
||||
agent_self}`; cold-recall gave zero cross-character bleed); throwaway `ratatoskr:betty` deleted;
|
||||
Sindra intact; stores scrubbed. **Still QUEUED:** the backfill live-verify (synthetic legacy corpus
|
||||
— exercises machinery a born-fresh store skips). Full record →
|
||||
`persistent-memory.d/2026-07-18-368-silo-test-passed.md`. Sibling issues WT-owned: **#369**
|
||||
(recited-content re-promotion loop), **#367** (copula-absence bridge phrasing).
|
||||
Sindra intact; stores scrubbed. **Still QUEUED:** the backfill live-verify (synthetic legacy corpus).
|
||||
Full record → `persistent-memory.d/2026-07-18-368-silo-test-passed.md`. Sibling issues WT-owned:
|
||||
**#369** (recited-content re-promotion loop), **#367** (copula-absence bridge phrasing).
|
||||
|
||||
**Deferred/queued (all NON-URGENT):** (1) P06-driver **referential-frame A/B/C probe**
|
||||
(operator-ratified, waits on WT b122 → `persistent-memory.d/2026-07-17-referential-frame-probe.md`);
|
||||
(2) R39 Phase-2 **matched-quartets rebuild** (confirmatory, "whenever"); (3) bifrost **snapshot-cursor
|
||||
adoption** (ruled normative, not blocking → `persistent-memory.d/2026-07-16-bifrost-cursor-conformance.md`).
|
||||
|
||||
**Substrate / environment:** branch `main` at **v0.21.1**; local commits ahead of origin's v0.20.16
|
||||
— incl. tier3 b127-role adaptation (`860e0d5`), #368 memory snapshots + silo work, and this session's
|
||||
contract-drift fix (`4bd9abd`) — **UNPUSHED**; origin `git@gitea.phasefinal.com:vh/ratatoskr.git`.
|
||||
bifrost **`==1.1.4`** / wire v0.7; WT openapi vendored 2.3.0; **suite 644 green**. Personal WT on
|
||||
**b127** (`http://10.250.50.152:8081`; #368 silo + #364 promotion-hygiene live both instances). The
|
||||
combined **:8392** provider (memory+affect) + **:8765** web are THE surfaces, dev-box BACKGROUND
|
||||
SHELLS — restart via `scratchpad/relaunch_by_pid.py <pid>` (env-preserving; pid via
|
||||
`ss -ltnp | grep <port>`). `env.sh` sets the REQUIRED `RATATOSKR_MEMORY_EMBEDDING_DIM=1024`. Keys
|
||||
env-only mode-600 in `~/.config/ratatoskr/provider.env` + `RATATOSKR_ADMIN_API_KEY` (7 read scopes,
|
||||
personal-:8081-only; Heimdall keys per-instance). **FOOT-GUN: check owner-scoped agents via
|
||||
`GET /agents/<owner>:<name>` with the OWNER key (`WORLDTREE_API_KEY`), NOT the admin key** — admin
|
||||
gives a false 404. `graphify-out/` runs dirty (auto-regen on the commit hook, never stage). v1 = full
|
||||
Worldtree I/O coverage, cuts when WT tags 1.0 (`docs/coverage-map.md`).
|
||||
**Substrate / environment:** branch `main` at **v0.21.1**, **PUSHED to origin 2026-07-18** (incl.
|
||||
tier3 b127-role adaptation `860e0d5`, #368 memory snapshots + silo work, the contract-drift fix
|
||||
`4bd9abd`, and this snapshot); origin `git@gitea.phasefinal.com:vh/ratatoskr.git`. bifrost
|
||||
**`==1.1.4`** / wire v0.7; WT openapi vendored 2.3.0; **suite 644 green**. Personal WT on **b127**
|
||||
(`http://10.250.50.152:8081`; #368 silo + #364 promotion-hygiene live both instances). The combined
|
||||
**:8392** provider (memory+affect) + **:8765** web are THE surfaces, dev-box BACKGROUND SHELLS —
|
||||
restart via `scratchpad/relaunch_by_pid.py <pid>` (pid via `ss -ltnp | grep <port>`). `env.sh` sets
|
||||
the REQUIRED `RATATOSKR_MEMORY_EMBEDDING_DIM=1024`. Keys env-only mode-600 in
|
||||
`~/.config/ratatoskr/provider.env` + `RATATOSKR_ADMIN_API_KEY` (7 read scopes, personal-:8081-only;
|
||||
Heimdall keys per-instance). **FOOT-GUN: check owner-scoped agents via `GET /agents/<owner>:<name>`
|
||||
with the OWNER key (`WORLDTREE_API_KEY`), NOT the admin key** — admin gives a false 404. `graphify-out/`
|
||||
runs dirty (auto-regen on the commit hook, never stage). v1 = full Worldtree I/O coverage, cuts when
|
||||
WT tags 1.0 (`docs/coverage-map.md`).
|
||||
|
||||
**Other live threads:** soong-lab = Tier-3 agent-authoring studio (v0.3.24+; motivational
|
||||
string→object export fixed upstream, our workaround droppable). Cross-session name-recall arc
|
||||
COMPLETE + shipped (v0.20.11→.16; WT #364 closed both sides; Sindra durably recalls Vuong via
|
||||
`mark_superseded` retirement, not recency-eviction). Sindra pristine baseline **WIPED 2026-07-18**
|
||||
(full #368 scrub, born-empty store — old `sindra-baseline/*.db` predate it). Open/deferred: #10
|
||||
subject-migration watch; relational-dynamics verify (bind `--bifrost-url :8392`); WT #356
|
||||
resume-durability = WT-owned.
|
||||
`mark_superseded` retirement). Sindra pristine baseline **WIPED 2026-07-18** (full #368 scrub,
|
||||
born-empty store — old `sindra-baseline/*.db` predate it). Open/deferred: #10 subject-migration watch;
|
||||
relational-dynamics verify (bind `--bifrost-url :8392`); WT #356 resume-durability = WT-owned.
|
||||
|
||||
## Recent decisions
|
||||
|
||||
@@ -247,9 +234,11 @@ decision. Captures rationale that won't be obvious from code alone.
|
||||
|
||||
- `[2026-07-18]` **#368 (user, character) memory silo test — DONE, PASSED live (WT b127).** Write + read isolation both proven end-to-end; betty (throwaway) deleted; the immediate post-clear action, closed. → `persistent-memory.d/2026-07-18-368-silo-test-passed.md`
|
||||
|
||||
- `[2026-07-18]` **Worldtree owns the official Conversation API SDK (#371) — Rata's client spine (`sse_client`/`sessions`/`tier3`) is the SEED; the SillyTavern-style app is a fresh TS SIBLING, NOT a fork of Rata.** TS package ships first (Rata's repin rides the later Python milestone); internal-registry-only; template-dev stands up the app repo. → `persistent-memory.d/2026-07-18-worldtree-sdk-371-and-sillytavern-app.md`
|
||||
- `[2026-07-18]` **Worldtree owns the official Conversation API SDK (#371) — Rata's client spine (`sse_client`/`sessions`/`tier3`) is the SEED; the SillyTavern app moved OUT to a NEW repo (template-dev), Rata does NOT fork.** Rata = SDK seed + future consumer; TS ships first (Rata's repin rides the later Python milestone); internal-registry-only. → `persistent-memory.d/2026-07-18-worldtree-sdk-371-and-sillytavern-app.md`
|
||||
- `[2026-07-18]` **issue #1 contract drift fixed (`4bd9abd`) — SSE event vocab re-canonicalized: added `awaiting_llm_first_token` (#201) + `affect_update` (#204) to the Event union + TESTS (both were parsed by `_envelope_for_type` and tested in `test_sse_client.py`, but never in #1's contract; surfaced by the #371 parity pass). Contract-only, no bump.**
|
||||
|
||||
- `[2026-07-18]` **Both app products (arbo image-gen + SillyTavern chat) leave Rata to a NEW repo (template-dev standing up); Rata does NOT fork and is NOT the app base.** Reverts Rata to its core — Worldtree debug-observability surface + Bifrost reference impl + Conversation-API SDK seed/future-consumer. Supersedes the 2026-07-17 'fork Rata for arbo' NEXT-MAJOR plan.
|
||||
|
||||
_65 older entries (2026-05-* debug-TUI/web era + the 2026-06-14 → 06-18 Bifrost-provider build / #17+#18 / #295-296 era) archived to archival-memory.md._
|
||||
|
||||
_For per-issue TDD implementation notes, Volva findings, and contract amendments, see the git log — every per-issue commit carries a structured message capturing the trail._
|
||||
|
||||
Reference in New Issue
Block a user