d2a5866650
[loop-cycle-1] fix: use config for xAI base URL ( #647 ) ( #655 )
2026-03-20 22:47:05 +00:00
3c46a1b202
refactor: extract _create_default template to module constant ( #649 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 17:36:29 -04:00
001358c64f
refactor: break up create_gitea_issue_via_mcp into helpers ( #647 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 17:29:55 -04:00
dd4410fe57
refactor: break up create_gitea_issue_via_mcp into helpers ( #646 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 17:22:33 -04:00
ef7f31070b
refactor: break up self_reflect into helpers ( #643 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 17:09:28 -04:00
6f66670396
[loop-cycle-1664] fix: replace deprecated datetime.utcnow() ( #633 ) ( #636 )
2026-03-20 17:01:19 -04:00
4cdd82818b
refactor: break up get_state_dict into helpers ( #632 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 17:01:16 -04:00
99ad672e4d
refactor: break up delegate_to_kimi into helpers ( #637 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 16:52:21 -04:00
32dbdc68c8
refactor: break up should_use_tools into helpers ( #624 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 16:31:34 -04:00
e3d60b89a9
fix: remove model_size kwarg from create_timmy() CLI calls ( #606 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 12:48:49 -04:00
6214ad3225
refactor: extract helpers from run_self_tests() ( #601 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 12:40:44 -04:00
5f5da2163f
[loop-cycle] refactor: extract helpers from _handle_tool_confirmation ( #592 ) ( #600 )
2026-03-20 12:32:24 -04:00
0029c34bb1
refactor: break up search_thoughts() into focused helpers ( #597 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 12:26:51 -04:00
2577b71207
fix: capture thought timestamp at cycle start, not after LLM call ( #590 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 12:13:48 -04:00
1a8b8ecaed
[loop-cycle-1235] refactor: break up _migrate_schema() into focused helpers ( #591 ) ( #595 )
2026-03-20 12:07:15 -04:00
d821e76589
[loop-cycle-1234] refactor: break up _generate_avatar_image ( #563 ) ( #589 )
2026-03-20 11:57:53 -04:00
faf6c1a5f1
[loop-cycle-1233] refactor: break up BaseAgent.run() ( #561 ) ( #584 )
2026-03-20 11:24:36 -04:00
9f244ffc70
refactor: break up _record_utterance() into focused helpers ( #572 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 21:37:32 -04:00
0162a604be
refactor: break up voice_loop.py::run() into focused helpers ( #567 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 21:33:59 -04:00
2326771c5a
[loop-cycle-953] refactor: DRY _import_creative_catalogs() ( #560 ) ( #565 )
2026-03-19 21:21:23 -04:00
8f6cf2681b
refactor: break up search_memories() into focused helpers ( #557 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 21:16:07 -04:00
f361893fdd
[loop-cycle-951] refactor: break up _migrate_schema() ( #552 ) ( #558 )
2026-03-19 21:11:02 -04:00
2849dba756
[loop-cycle-948] refactor: break up _gather_system_snapshot() into helpers ( #540 ) ( #549 )
2026-03-19 20:52:13 -04:00
e11e07f117
[loop-cycle-947] refactor: break up self_reflect() into focused helpers ( #505 ) ( #546 )
2026-03-19 20:49:18 -04:00
7da434c85b
[loop-cycle-946] refactor: complete airllm removal ( #486 ) ( #545 )
2026-03-19 20:46:20 -04:00
aa5e9c3176
refactor: break up get_memory_status() into helpers ( #537 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 20:30:29 -04:00
1b4fe65650
fix: cache thinking agent and add timeouts to prevent loop pane death ( #535 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 20:27:25 -04:00
b45b543f2d
refactor: break up create_timmy() into testable helpers ( #520 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 19:51:59 -04:00
7c823ab59c
refactor: break up think_once() into testable helpers ( #518 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 19:43:26 -04:00
e4de539bf3
fix: extract ollama_url normalization into shared utility ( #508 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 19:18:22 -04:00
b2057f72e1
[loop-cycle] refactor: break up run_agentic_loop into testable helpers ( #504 ) ( #509 )
2026-03-19 19:15:38 -04:00
5f52dd54c0
[loop-cycle-932] fix: add logging to bare except Exception blocks ( #484 ) ( #501 )
2026-03-19 19:05:02 -04:00
0ae00af3f8
fix: remove AirLLM config settings from config.py ( #475 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 15:24:43 -04:00
92594ea588
[loop-cycle] feat: implement source distinction in system prompts ( #463 ) ( #464 )
2026-03-19 14:49:31 -04:00
3590c1689e
fix: make _get_loop_agent singleton thread-safe ( #449 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 14:18:27 -04:00
3afb62afb7
fix: add self_reflect tool for past behavior review ( #417 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 09:39:14 -04:00
332fa373b8
fix: wire cognitive state to sensory bus (presence loop) ( #414 )
...
## Summary
- CognitiveTracker.update() now emits `cognitive_state_changed` events to the SensoryBus
- WorkshopHeartbeat (and other subscribers) react immediately to mood/engagement changes
- Closes the sense → memory → react loop described in the Workshop architecture
- Fire-and-forget emission — never blocks the chat response path
- Gracefully skips when no event loop is running (sync contexts/tests)
## Test plan
- [x] 3 new tests: event emission, mood change tracking, graceful skip without loop
- [x] All 1935 unit tests pass
- [x] Lint + format clean
Fixes #222
Co-authored-by: kimi <kimi@localhost>
Reviewed-on: http://localhost:3000/rockachopa/Timmy-time-dashboard/pulls/414
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 03:23:03 -04:00
9b8ad3629a
fix: wire Pip familiar into Workshop state pipeline ( #412 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 03:09:22 -04:00
4b617cfcd0
fix: deep focus mode — single-problem context for Timmy ( #409 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 02:54:19 -04:00
3571d528ad
feat: Workshop Phase 1 — State Schema v1 ( #404 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 02:24:13 -04:00
858264be0d
fix: deprecate ~/.tower/timmy-state.txt — consolidate on presence.json ( #388 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 01:18:52 -04:00
da43421d4e
feat: broadcast Timmy state changes via WS relay ( #380 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 00:25:11 -04:00
864be20dde
feat: Workshop state heartbeat for presence.json ( #377 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 22:07:32 -04:00
c1f939ef22
fix: add update_gitea_avatar capability ( #368 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 22:04:57 -04:00
c1af9e3905
[loop-cycle-154] refactor: extract _annotate_confidence helper — DRY 3x duplication ( #369 ) ( #376 )
2026-03-18 22:01:51 -04:00
996ccec170
feat: Pip the Familiar — behavioral state machine ( #367 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 21:50:36 -04:00
560aed78c3
fix: add cognitive state as observable signal for Matrix avatar ( #358 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 21:37:17 -04:00
ce658c841a
[loop-cycle-151] refactor: extract embedding functions to memory/embeddings.py ( #344 ) ( #355 )
2026-03-18 21:24:50 -04:00
243b1a656f
feat: give Timmy hands — artifact tools for conversation ( #337 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 20:36:38 -04:00
22e0d2d4b3
[loop-cycle-66] fix: replace language-model with inference-backend in error messages ( #334 )
2026-03-18 20:27:06 -04:00