Files
2026-10-12 17:02:51 +02:00

16 KiB

Research Archive Index

Molodetz Institute — Research & Retrieval Division. This is the living registry of every subject in research/. It is updated in the same pass as any new research, per the standing rule in README.md §4. Never edit a subject's documents without also updating its row here.

Global statistics

Metric Value
Subjects 7
Total source documents 527
— Tier 1 (Source Dossier, independently analyzed) 154
— Tier 2 (Source Citation Card, listed only) 373
Total conclusion documents 15
Archive opened 2026-10-09
Last updated 2026-10-12

Subjects

Subject Sources (T1 / T2) Conclusions Opened Last updated Driving task
sqlite-rag-hybrid-search 32 (10 / 22) 1 2026-10-09 2026-10-09 Designing tmux-log export + chunked retrieval; settled on BM25-only, no vector DB
agent-memory-recency-tracking 63 (16 / 47) 1 2026-10-09 2026-10-09 Designing an LRU-style last-used/use-count tracker for vault records and chunks
async-pty-process-testing 59 (20 / 39) 1 2026-10-09 2026-10-09 Designing tai_test.py (pty vs. pipes, non-blocking stdin, process-group cleanup, test-framework shape) — backfilled after it was initially skipped, see activity log
shell-multiplexer-auto-attach 139 (49 / 90) 3 2026-10-09 2026-10-12 Designing a tai-managed terminal multiplexer + bashrc auto-attach: tmux-as-substrate recommendation, interactive-vs-automation shell detection; extended 2026-10-10 to cover zsh/fish hook syntax; extended 2026-10-12 with the tmux 3.6 key table, option and command dumps (installed binary) and the conclusion to build a native tmux-parity multiplexer configured by ~/.tai/mplex.toml
tui-framework-design 94 (49 / 45) 5 2026-10-10 2026-10-11 Designing tai's in-house TUI framework (retained DOM, cuts/chops compositor, SGR mouse, bubbling events, VT sub-terminals); extended 2026-10-10 with synchronized-output verification (DEC 2026); implemented in working-tree tai.py and verified the same session; same-day follow-up fixed the 19 failures natively, deleted tai_pkg/, suite 320/320 green, committed; extended again for kitty keyboard protocol (double-Shift prompt dialog); extended 2026-10-11 with messaging-layout comparison (telecli, send-rs, za-tui, bubbletea examples) and palette-role theming survey (Textual, lipgloss, bubbletint, ratatui-themes, ratatui-kit, pytermgui) plus 2 conclusions, nothing built yet; extended again 2026-10-11 with Telegram look-and-feel survey (tdesktop day/night themes, lang strings, Android dialog/message cells, FAQ, blog, Bot API/features, WebApps ThemeParams, mini-apps SDK docs, iOS teardown — 16 Tier 1) plus 2 conclusions, nothing built yet
agentic-tool-loop-design 74 (7 / 67) 2 2026-10-11 2026-10-11 Fixing stop-after-narration on prompt-JSON CLI backends without intent regexes; decided structural loop control plus exactly-once JSON-contract repair plus prompt contract, implemented in tai.py the same session (suite 357/357 + 16/16 green); approval tiers judged already industry-standard, no change
muse-responses-openai-transpiler 66 (3 / 63) 2 2026-10-11 2026-10-11 Documenting Meta muse Responses wire format vs classic Chat Completions; decided bidirectional transpile is feasible with a fixed loss table and system guidance has three channels; scratch transpiler tested, nothing merged

Recent activity log

Date Subject Event
2026-10-09 — Archive created: specification (README.md), index (this file), and both subjects above backfilled from the day's research in full, per explicit instruction to retroactively capture every source consulted that day.
2026-10-09 sqlite-rag-hybrid-search 32 sources (10 Tier 1 / 22 Tier 2) + 1 conclusion recorded (the conclusion: pure SQLite FTS5/BM25 chunked search, deliberately no embeddings/vector DB — see conclusions/). Counts verified directly against the written files, not taken from the authoring agent's self-report.
2026-10-09 — Spec change: Tier split into its own standalone metadata row (1 / 2 / N/A) instead of a parenthetical inside Document type, so it's directly filterable. All 97 existing documents across both subjects backfilled to match in the same pass; counts re-verified afterward (unchanged: 26 Tier 1, 69 Tier 2, 2 Conclusions).
2026-10-09 agent-memory-recency-tracking 63 sources (16 Tier 1 / 47 Tier 2) + 1 conclusion recorded (the conclusion: last_used/use_count tracking proposal for records and chunks, throttled-write pattern, no eviction policy yet — see conclusions/). One source (glama-code-index-mcp-bm25-hybrid.md) was promoted from the originally-planned Tier 2 to Tier 1 by the authoring agent mid-task because it contained specific attributable numeric findings — exactly the judgment call §3 of README.md calls for, logged here rather than silently absorbed. Counts verified directly against the written files.
2026-10-09 async-pty-process-testing New subject, opened as a correction: the eight WebSearch calls behind tai_test.py's design (pty vs. pipes, non-blocking stdin, process-group cleanup, test-framework patterns) were initially skipped from the archive under the reasoning "informal engineering reference, not a design decision" — a silent, unilateral exception to the Research Rule, and wrong (see README.md §4's added "no exception, ever" paragraph). Backfilled: 59 sources (20 Tier 1 / 39 Tier 2) + 1 conclusion (conclusions/tai-test-framework-design.md). Counts verified directly against the written files via research/audit.py, not taken from the authoring agent's self-report alone. A PostToolUse/WebSearch hook (.claude/settings.json) was also added the same day specifically to stop this from recurring.
2026-10-09 shell-multiplexer-auto-attach 71 sources (38 Tier 1 / 33 Tier 2) + 1 conclusion recorded (the conclusion: build on tmux as a substrate rather than a from-scratch multiplexer; reliable human-vs-automation shell detection has no single solution, only a combination of weaker signals plus a safety-file escape hatch). Counts verified directly against the written files via research/audit.py. Hook fired correctly for all 8 underlying WebSearch calls during this task.
2026-10-10 shell-multiplexer-auto-attach Extended with 67 more sources (10 Tier 1 / 57 Tier 2) + 1 more conclusion (conclusions/cross-shell-hook-syntax-bash-zsh-fish.md), covering 7 WebSearch calls on zsh/fish command-not-found and plexer-hook syntax (fish_command_not_found, zsh command_not_found_handler, fish's isatty builtin vs. a missing test -t, status is-interactive/is-login, config.fish always being sourced, and the fish -i flag). Subject total now 138 sources (48 Tier 1 / 90 Tier 2), 2 conclusions. The research backed a same-session implementation (tai.py's shell_rc_path/ZSH_NOTFOUND_BLOCK/FISH_NOTFOUND_BLOCK/FISH_PLEXER_BLOCK/op_zsh_hook/op_fish_hook/op_zsh_plexer_hook/op_fish_plexer_hook, new tests in test_tai.py and tests/bashrc.py, and zsh/fish added to tests/docker/Dockerfile) rather than remaining a proposal. Counts verified directly against the written files via research/audit.py (PASS).
2026-10-10 tui-framework-design New subject: 44 sources (7 Tier 1 / 37 Tier 2) + 1 conclusion (conclusions/retained-dom-compositor-tui.md), covering 4 WebSearch calls plus 7 direct page fetches on TUI architecture (Textual events/layout/animation guides, pyte repo, SGR mouse protocol, rabbitui Textual synthesis, tmux popup-removal commit). Decision: retained-DOM framework in tai.py with cuts/chops compositor, named layers, bubbling events, SGR mouse, tick animations, reimplemented VT sub-terminals. Nothing built yet; implementation plan presented, awaiting go. Counts hand-verified (shell unavailable for research/audit.py in this session).
2026-10-10 tui-framework-design Extended with 10 more sources (2 Tier 1 / 8 Tier 2) verifying synchronized-output framing (DEC mode 2026, CSI ? 2026 h/l, harmless no-op where unsupported). Subject total now 54 sources (9 Tier 1 / 45 Tier 2), 1 conclusion. Implementation approved by retoor the same session; framework being built into tai.py.
2026-10-10 tui-framework-design Implementation finished and verified (no new sources): framework in working-tree tai.py, tui.md docs, /demo + --demo + --demo-shot wiring, 49 TUI unit tests green, 21/21 headless interaction checks green, 10/10 live pty e2e checks green, test_seal.py green. The 19 remaining test_tai.py failures are the pre-existing monolith/facade working-tree mismatch, proven unrelated via stash comparison. Conclusion document updated.
2026-10-10 tui-framework-design Follow-up (no new sources): the 19 failures from the previous row were fixed natively — five classes (Consts, Install, Sandbox, Opencode, SysInfo) defined directly in standalone tai.py with module functions delegating, four test patch-targets corrected to the real tai.* seams (assertions unchanged) — then tai_pkg/ deleted outright per retoor's call. Suite now 320/320 green (test_tai.py) + 16/16 (test_seal.py); tui.md focus rules updated (Tab always cycles, auto-focus, focus memory); committed. Conclusion document forward-corrected.
2026-10-10 tui-framework-design Extended with 1 more source (Tier 1: the kitty keyboard protocol specification, direct fetch) to settle double-Shift detection for a prompt dialog: bare modifier presses need flag 8, press is 57441;2u, filter :2/:3 via flag 2, push CSI > 10 u best-effort with no query round-trip, pop on teardown. Subject total now 55 sources (10 Tier 1 / 45 Tier 2), 1 conclusion.
2026-10-11 agentic-tool-loop-design New subject: 74 sources (7 Tier 1 / 67 Tier 2) + 2 conclusions, covering 7 searches plus 7 direct fetches on agentic loop control (Anthropic stop_reason docs, Building Effective Agents, Agent SDK loop, Writing Tools for Agents, ReAct pattern, tool-calling playbook, small-model narration field report). Decisions: keep loop control structural (tool_calls presence is the stop_reason equivalent, never text parsing), repair a missing JSON envelope exactly once per CLI-backend call, harden the prompt contract, leave approval tiers unchanged. Backed a same-session implementation (tai.py opencode_find_answer/cli_json_repair_prompt/cli_json_turn, prompt-contract sentences, 7 new tests) with suite 357/357 + 16/16 green. Counts verified directly against the written files.
2026-10-11 tui-framework-design Extended with 23 more sources (all Tier 1, no Tier 2 — every consulted source body was opened via web_fetch by the researching agent) + 2 conclusions (conclusions/messaging-layout-chat-scene.md, conclusions/palette-role-theming.md): 14 dossiers comparing 4 messaging-client implementations (telecli tui.rs; send-rs tui mod/state/config/status/chat-widget; za-tui tcss/main-screen/status/input/chat-view; bubbletea chat + glamour examples; ai-nexus ratatui guidance doc) and 9 dossiers surveying theme systems (Textual theme.py, design guide, constants.py; lipgloss pkg docs; bubbletint, ratatui-themes, ratatui-kit; pytermgui styling + file_loaders). Decisions: 30/70 chat scene with growing input + 1-line status, manual sidebar toggle first with sub-80 auto-hide deferred, modal keys, left-aligned grouped rows, markdown width-minus-chrome, pin-to-bottom streaming; 12-role palette with THEMES dict registry, --theme flag > TAI_THEME > default, set_theme + F4 cycle, resolve-at-draw with raw-color escape hatch, file overrides deferred. A same-session internal tai.py inventory (no chat-transcript widget, no theme object, hardcoded inline styles) informed both conclusions but produced no source documents (internal code, not external research). Nothing built yet — both conclusions are specified-not-shipped. Carried gaps: no shipped client implements auto breakpoints (80-col rule is guidance-doc only); no streaming/tool-call rendering observed (inferred); fixed-cell sidebars appear only in guidance docs; ratatui core styling, pytermgui NO_COLOR, Textual get_css_variables, and lipgloss v2 LightDark unverified (snippet or inference only). Subject total now 78 sources (33 Tier 1 / 45 Tier 2), 3 conclusions. Counts verified directly against the written files (per-subject grep; global grep also matches README.md's own template rows, excluded).
2026-10-11 tui-framework-design Extended with 16 more sources (all Tier 1, no Tier 2 — every consulted source body was fetched by the researching agents) + 2 conclusions (conclusions/telegram-chat-grammar-adoption.md, conclusions/telegram-theme-roles-mapping.md): 10 dossiers on Telegram chat look-and-feel (tdesktop day/night theme files, lang.strings copy sheet, Android DialogCell/ChatMessageCell, FAQ check semantics, chat-themes blog, third-party checkmarks explainer, Bot API keyboards/commands, bot features onboarding) and 6 on Mini App theming (official WebApps ThemeParams/events/design rules; SDK docs for main/back, settings, viewport, theming; third-party iOS teardown). Decisions: adopt Telegram's metadata grammar as rows (clock/checks/blue-checks/eye, no delivered state), 8-hue peer palette, service/date pills, literal status/composer/bot copy, and reply-vs-inline keyboard grammar, rejecting bubbles, gradient themes, and pixel geometry; map the 15 ThemeParams keys onto tai's 12 roles with Desktop-file plus dark-sample defaults and a never-hardcode/re-read-on-switch discipline. A same-session internal tai.py inventory (chat scene present but plain: no ticks/dividers/header/rich rows/composer buttons; 6 of 12 roles used, hardcoded borders) informed both conclusions with per-item patch targets but produced no source documents (internal code, not external research). Nothing built yet — both conclusions are specified-not-shipped. Carried gaps: iOS/Web hexes unverified (Desktop day/night only); bubble radii/paddings/spacing/tail geometry, header icon inventory, chat-list time/date formatting and truncation, send-vs-voice swap and media-bubble time overlay unknown; no official typography/spacing spec (teardown values only); light defaults for section_*/subtitle/destructive unpublished; WebViewColors diagram uninspected; back-button SDK page yielded no captured evidence. Subject total now 94 sources (49 Tier 1 / 45 Tier 2), 5 conclusions. Counts verified directly against the written files via research/audit.py (PASS).
2026-10-11 muse-responses-openai-transpiler New subject: 66 sources (3 Tier 1 / 63 Tier 2) + 2 conclusions, covering the Meta muse Responses wire format vs classic Chat Completions (official migration guide, Responses reference, Chat reference fetched and synthesized; 63 search listings logged as seen-not-analyzed). Decisions: bidirectional transpile is feasible with a fixed warn-on-drop loss table, and system guidance has three channels (instructions preferred, developer/system Items otherwise). Backed by a scratch stdlib transpiler (/tmp/openai_transpile.py, self-test green, real-capture round trip verified); nothing merged into tai.py. Counts verified directly against the written files via research/audit.py (PASS).
2026-10-12 shell-multiplexer-auto-attach Extended with 1 source (Tier 1: output of the installed tmux 3.6, list-keys, list-keys -N, show-options, list-commands) + 1 conclusion (conclusions/tmux-parity-native-multiplexer.md): the native multiplexer gets tmux's default key tables, command and option names, configured by ~/.tai/mplex.toml; the earlier "build on tmux" recommendation stays for the tmux controller and detection rules. Behavior was also compared command by command against the same binary (layouts, windows, copy mode), see mplex.md.

How to use this index

  • Before starting new research, search this table for an existing subject before opening a new one (see README.md §2, "one subject, one home").
  • Every subject folder is self-contained: its sources live flat inside it, its conclusions live in its conclusions/ subfolder.
  • Tier 1 vs Tier 2 is a statement about how deeply a source was actually read, not about its importance — see README.md §3 for the exact distinction.