Operator: Andrew. Written 2026-10-27 05:27 Sydney. Follows Experiment_001_checkpoint_2.md (kept, never overwritten; Experiment_001_checkpoint.md also kept). Status: two tools built and delivered (hotwords 2.1.0, contextdef_05b 1.0.0). Experiments themselves not started; the recorder (build step 1) is still not written. Resume: paste this file together with Experiment_001_checkpoint_2.md into a fresh conversation. Where the two differ, this file wins; the differences are listed in section 3. Related: MEMSTORE_CLONE_CHECKPOINT_2026-10-27_2.md (global parameters).
Hotwords_v1.0.0.zip, v1.0.1 (non-ASCII crash fixed), then redesigned as Hotwords_v2.0.0.zip and Hotwords_v2.1.0.zip (current). All kept, never reused.ContextDef05b_v1.0.0.zip (contextdef_05b.py).2C-B, not 2-CB, but both must find each other).| Topic in checkpoint 2 | Now |
|---|---|
| Retrieval over passages / "documents", support table from retrieved passages | Retrieval over hot-term arrays (tool hotwords.py). No text kept. The support table is built from the arrays RAG chose. |
| Background frequency table from forum text or the attachments corpus | Dropped for now. Rarity comes from the counted texts themselves (word counter keyed by spelling key). Known weakness, risk 16 in section 5. |
| Context definition: rule-based only | Rule-based design stands (still not built). Plus a trial using the 0.5B to produce subject / intent / terms. Position weighting should be added to the rule-based subject score (early query words count more). |
| LLM2 input = context definition + 50 candidates | LLM2 input = the pseudo query (query's hot array + RAG's related terms, each with a weight) + the 50 candidates. How the pseudo query becomes 50 weights is not yet designed; proposal: a candidate's weight = the weight of the pseudo-query term it matches (spelling key, then fuzzy for plain words), 0 if none. Not agreed. |
| Words/phrases as arrays of embeddings, exact match in v1 | Unchanged in intent, but v1 matching is now spelling key plus fuzzy (edit distance) on plain words. Still no embeddings. |
| Settings list (SIM_FLOOR etc.) | Several are now concrete (section 9). |
Everything else in checkpoint 2 (experiments 000/001/002, decisions on stage separation, driving LLM1 one word at a time, pseudo code, risks 1 to 13, build order) stands.
Problem: the retrieval side of Experiment 001 needs a way to turn LLM1's own history into a small, fast, relevance-ordered store that can be matched against a new query, tolerant of spelling variants, and that yields a query LLM2 can use. Resolution: hotwords.py 2.1.0 (details below) and a 0.5B context-definer trial. Both are tools, not yet wired into any experiment.
times_seen; a different text giving the same array collapses into it (vocab untouched).2C-B = 2-CB = 2cb). Terms merge by key inside a text, are stored and counted by key, shown as first typed.pseudo only): plain words of 5+ letters match stored words within 1 edit (up to 8 letters) or 2 edits (9+), swap of neighbours = 1 edit, weight factor 1 - 0.1 per edit, best 3 variants. Words containing a digit and words under 5 letters never fuzzy-match (2C-B vs 2C-I and 25I-NBOMe vs 25B-NBOMe are different drugs).pseudo command builds the pseudo query and stores nothing. RAG match = share of the query's weight covered by a stored array (query rel x stored rel x factor, best match per query term). Defaults: 5 arrays, 12 extra terms, match floor 0.05. Formats: line (two lines query: / related:, phrases quoted, --weights adds term:0.42), table, json (full trace incl. fuzzy matches).add, show, top, stats. Database schema 3; older databases are refused, not converted (HOTWORDS_DB points to a new file). Python 3.6 and SQLite 3.6.20 safe; UTF-8 handled explicitly. 98 checks pass on Python 3.11, 3.12, 3.13. Not yet run on the Clone's 3.6 / 3.8 / 3.15."serotonin syndrome" | dangerous | risk | worries | combined | maois; the forum-slowness array was left out./v1/chat/completions by default, --api completion for older builds with Qwen chat tags). Greedy, fixed seed, one worked example in the prompt. Asks for SUBJECT, INTENT, TERMS (most important first); parses forgivingly; marks each term as in the query or [+] added by the model; prints timing; saves JSON per query plus run.json under $MEMDIR/ctxdef_try/<run>/. Never touches the real context-definition store.seed-background was removed in 2.0.0.snake_case splits, and fuzzy would merge get_user with get_users. A code mode (keep code, whole identifiers plus parts, no fuzzy) is not built.Delivered this session (all kept): Hotwords_v1.0.0.zip, Hotwords_v1.0.1.zip, Hotwords_v2.0.0.zip, Hotwords_v2.1.0.zip, ContextDef05b_v1.0.0.zip, Experiment_001_checkpoint_2.md (previous). Release cards given with each; the open line on each is "run on the Clone's Python 3.6 / 3.8 / 3.15" and, for the context definer, "run against the real 0.5B".
contextdef_05b.py on a few queries; report malformed rate, added terms, seconds per query. Run hotwords.py on the Clone's Python versions; feed it real query/reply pairs.hotwords.py add.hotwords.py: H 20, keep 0.4, array 3 to 12, minimum phrase count 2, RAG 5 / 12 / 0.05, fuzzy 5 letters / 1 and 2 edits / 0.1 step / 3 variants. Still open: embedding model, tokenizer check (4B and 0.5B vocabularies), whether the sampler returns probabilities before or after cuts, lift smoothing, phrase window, ALPHA steps.Claude: [Month DD, YYYY, HH:MM:SS AM/PM] (casual mode), real Sydney time from a code run immediately before each reply.pkill/kill on services. Never rename his scripts. Deployment timing is his call.@version/@date; manual with version history; version shown once at start; zip with a dotted, never-reused version; xmllint --noout on XML; list unrequested changes BEFORE making them; end with a release card (include "legacy zipper used" only for SMF package zips)._N, never reused (next is _4). Prefers short conversations and a fresh chat per chapter.