| 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). |