1
0

fix: resolve 6 dashboard bugs and rebuild Task Queue + Work Orders (#144) (#144)

Round 2+3 bug fix batch:

1. Ollama timeout: Add request_timeout=300 to prevent socket read errors
   on complex 30-60s prompts (production crash fix)

2. Memory API: Create missing HTMX partial templates (memory_facts.html,
   memory_results.html) so Save/Search buttons work

3. CALM page: Add create_tables() call so SQLAlchemy tables exist on
   first request (was returning HTTP 500)

4. Task Queue: Full SQLite-backed rebuild with CRUD endpoints, HTMX
   partials, and action buttons (approve/veto/pause/cancel/retry)

5. Work Orders: Full SQLite-backed rebuild with submit/approve/reject/
   execute pipeline and HTMX polling partials

6. Memory READ tool: Add memory_read function so Timmy stops calling
   read_file when trying to recall stored facts

Also: Close GitHub issues #115, #114, #112, #110 as won't-fix.
Comment on #107 confirming prune_memories() already wired to startup.

Tests: 33 new tests across 4 test files, all passing.
Full suite: 1155 passed, 2 pre-existing failures (hands_shell).

Co-authored-by: Trip T <trip@local>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Alexander Whitestone
2026-03-07 23:21:30 -05:00
committed by GitHub
parent b8164e46b0
commit e36a1dc939
18 changed files with 1036 additions and 14 deletions

View File

@@ -12,6 +12,7 @@ from timmy.semantic_memory import (
MemorySearcher,
MemoryChunk,
memory_search,
memory_read,
_get_embedding_model,
)
@@ -232,6 +233,22 @@ class TestMemorySearch:
assert isinstance(result, str)
class TestMemoryRead:
"""Test module-level memory_read function."""
def test_memory_read_returns_string(self):
result = memory_read()
assert isinstance(result, str)
def test_memory_read_with_query(self):
result = memory_read("some query")
assert isinstance(result, str)
def test_memory_read_none_top_k(self):
result = memory_read("test", top_k=None)
assert isinstance(result, str)
class TestMemoryChunk:
"""Test MemoryChunk dataclass."""