sessions: vault discovery tools, shared stdin, ctrl-key fixes
New sessions/session_export tools plus a sessions_block vault map in the system prompt (tai.py, ported to detz); recall/search carry a session footer instead of letting the model grep sealed bytes. write_file refuses new markdown at working/repo roots, and the blanket *.md gitignore is gone so docs stay visible. One LineInput owns fd 0 for every prompt (ask, approvals, shell_ask, secrets), ending phantom-empty answers; Ctrl-C re-prompts (double exits), Ctrl-D exits, Ctrl-Z suspends; mid-turn Ctrl-C announces itself and kills foreground shell children via RunInterrupted. Covered by SessionsTests, repl_keys.py pty checks, agent_diff sessions_block cases.
This commit is contained in:
@@ -18,6 +18,15 @@ int main() {
|
||||
std::string view = Spill::spill_or_truncate(st.get(), "note", "big", big);
|
||||
if (view.find("chars spilled to mem:") == std::string::npos) { std::puts("spill failed"); return 1; }
|
||||
if (Spill::truncate("abc") != "abc") { std::puts("truncate failed"); return 1; }
|
||||
if (!st->list_sessions("default").empty()) { std::puts("list_sessions should start empty"); return 1; }
|
||||
Json m = Json::object();
|
||||
m.set("role", "user");
|
||||
m.set("content", "the lighthouse");
|
||||
st->save_session("default", {m}, "main", "20240101-000000-p11-abcdef01");
|
||||
auto sessions = st->list_sessions("default");
|
||||
if (sessions.size() != 1 || sessions[0].bot != "main" || sessions[0].sid != "20240101-000000-p11-abcdef01" ||
|
||||
sessions[0].messages != 1 || sessions[0].path.find(".session.20240101-000000-p11-abcdef01.json") == std::string::npos) {
|
||||
std::puts("list_sessions failed"); return 1; }
|
||||
std::puts("store OK");
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user