72c3a0a989
fix: integration tests for agentic loop WS broadcasts ( #452 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 14:30:00 -04:00
de089cec7f
[loop-cycle-524] fix: remove numpy test dependency in test_memory_embeddings ( #451 )
2026-03-19 14:22:13 -04:00
2161c32ae8
fix: add unit tests for agentic_loop.py ( #421 ) ( #447 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 14:13:50 -04:00
98b1142820
[loop-cycle-522] test: add unit tests for agentic_loop.py ( #421 ) ( #441 )
2026-03-19 14:10:16 -04:00
1d79a36bd8
fix: add unit tests for memory/embeddings.py ( #437 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 11:12:46 -04:00
cce311dbb8
[loop-cycle] test: add unit tests for briefing.py ( #422 ) ( #438 )
2026-03-19 10:50:21 -04:00
a31c929770
fix: add unit tests for tools.py ( #428 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 10:17:36 -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
76b26ead55
rescue: WS heartbeat ping + commitment tracking from stale PRs ( #415 )
...
## What
Manually integrated unique code from two stale PRs that were **not** superseded by merged work.
### PR #399 (kimi/issue-362) — WebSocket heartbeat ping
- 15-second ping loop detects dead iPad/Safari connections
- `_heartbeat()` coroutine launched as background task per WS client
- `ping_task` properly cancelled on disconnect
### PR #408 (kimi/issue-322) — Conversation commitment tracking
- Regex extraction of commitments from Timmy replies (`I'll` / `I will` / `Let me`)
- `_record_commitments()` stores with dedup + cap at 10
- `_tick_commitments()` increments message counter per commitment
- `_build_commitment_context()` surfaces overdue commitments as grounding context
- Wired into `_bark_and_broadcast()` and `_generate_bark()`
- Public API: `get_commitments()`, `close_commitment()`, `reset_commitments()`
### Tests
22 new tests covering both features: extraction, recording, dedup, caps, tick/context, integration, heartbeat ping, dead connection handling.
---
This PR rescues unique code from stale PRs #399 and #408 . The other two stale PRs (#402 , #411 ) were already superseded by merged work and should be closed.
Co-authored-by: Perplexity Computer <perplexity@tower.dev >
Reviewed-on: http://localhost:3000/rockachopa/Timmy-time-dashboard/pulls/415
Co-authored-by: Perplexity Computer <perplexity@tower.local >
Co-committed-by: Perplexity Computer <perplexity@tower.local >
2026-03-19 03:22:44 -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
b67dbe922f
fix: conversation grounding to prevent topic drift in Workshop ( #406 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 02:39:15 -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
e89aef41bc
[loop-cycle-392] refactor: DRY broadcast + bark error logging ( #397 , #398 ) ( #400 )
2026-03-19 02:01:58 -04:00
86224d042d
feat: Workshop Phase 4 — visitor chat via WebSocket bark engine ( #394 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 01:54:06 -04:00
f9d8509c15
fix: send world state snapshot on WS client connect ( #390 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 01:28:57 -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
19e7e61c92
[loop-cycle] refactor: DRY PRESENCE_FILE — single source of truth in workshop_state ( #381 ) ( #382 )
2026-03-18 22:33:06 -04:00
b7573432cc
fix: watch presence.json and broadcast state via WS ( #379 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 22:22:02 -04:00
3108971bd5
[loop-cycle-155] feat: GET /api/world/state — Workshop bootstrap endpoint ( #373 ) ( #378 )
2026-03-18 22:13:49 -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
db7220db5a
test: add unit tests for memory/unified.py ( #353 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 21:23:03 -04:00
ae10ea782d
fix: remove duplicate agent loader test file ( #354 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 21:23:00 -04:00
4afc5daffb
test: add unit tests for agents/loader.py ( #349 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 21:13:01 -04:00
4aa86ff1cb
[loop-cycle-150] test: add 22 unit tests for agents/base.py — BaseAgent and SubAgent ( #350 )
2026-03-18 21:10:08 -04:00
11357ffdb4
test: add comprehensive unit tests for agentic_loop.py ( #345 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 20:54:02 -04:00
fcbb2b848b
test: add unit tests for jot_note and log_decision artifact tools ( #341 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 20:47: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
bfd924fe74
[loop-cycle-65] feat: scaffold three-phase loop skeleton ( #324 ) ( #330 )
2026-03-18 20:11:02 -04:00
844923b16b
[loop-cycle-65] fix: validate file paths before filing thinking-engine issues ( #327 ) ( #329 )
2026-03-18 20:07:19 -04:00
9a21a4b0ff
feat: SensoryEvent model + SensoryBus dispatcher ( #318 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 19:02:12 -04:00
ab71c71036
feat: time adapter — circadian awareness for Timmy ( #315 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 18:47:09 -04:00
39939270b7
fix: Gitea webhook adapter — normalize events to sensory bus ( #309 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 18:37:01 -04:00
234187c091
fix: add periodic memory status checks during thought tracking ( #311 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-18 18:26:53 -04:00
f4106452d2
feat: implement v1 API endpoints for iPad app ( #312 )
...
Co-authored-by: manus <manus@timmy.local >
Co-committed-by: manus <manus@timmy.local >
2026-03-18 18:20:14 -04:00
f5a570c56d
fix: add real-time data disclaimer to welcome message ( #304 )
2026-03-18 16:56:21 -04:00
rockachopa
96e7961a0e
fix: make confidence visible to users when below 0.7 threshold ( #259 )
...
Co-authored-by: rockachopa <alexpaynex@gmail.com >
Co-committed-by: rockachopa <alexpaynex@gmail.com >
2026-03-15 19:36:52 -04:00
bcbdc7d7cb
feat: add thought_search tool for querying Timmy's thinking history ( #260 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-15 19:35:58 -04:00
80aba0bf6d
[loop-cycle-63] feat: session_history tool — Timmy searches past conversations ( #251 ) ( #258 )
2026-03-15 15:11:43 -04:00
dd34dc064f
[loop-cycle-62] fix: MEMORY.md corruption and hot memory staleness ( #252 ) ( #256 )
2026-03-15 15:01:19 -04:00
7bc355eed6
[loop-cycle-61] fix: strip think tags and harden fact parsing ( #237 ) ( #254 )
2026-03-15 14:50:09 -04:00
f9911c002c
[loop-cycle-60] fix: retry with backoff on Ollama GPU contention ( #70 ) ( #238 )
2026-03-15 14:28:47 -04:00
7f656fcf22
[loop-cycle-59] feat: gematria computation tool ( #234 ) ( #235 )
2026-03-15 14:14:38 -04:00
8c63dabd9d
[loop-cycle-57] fix: wire confidence estimation into chat flow ( #231 ) ( #232 )
2026-03-15 13:58:35 -04:00
a50af74ea2
[loop-cycle-56] fix: resolve 5 lint errors on main ( #203 ) ( #224 )
2026-03-15 13:40:40 -04:00