Commit Graph

10 Commits

Author SHA1 Message Date
3afb62afb7 fix: add self_reflect tool for past behavior review (#417)
All checks were successful
Tests / lint (push) Successful in 4s
Tests / test (push) Successful in 1m2s
Co-authored-by: Kimi Agent <kimi@timmy.local>
Co-committed-by: Kimi Agent <kimi@timmy.local>
2026-03-19 09:39:14 -04:00
76b26ead55 rescue: WS heartbeat ping + commitment tracking from stale PRs (#415)
Some checks failed
Tests / lint (push) Has been cancelled
Tests / test (push) Has been cancelled
## 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
b67dbe922f fix: conversation grounding to prevent topic drift in Workshop (#406)
All checks were successful
Tests / lint (push) Successful in 3s
Tests / test (push) Successful in 56s
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)
All checks were successful
Tests / lint (push) Successful in 3s
Tests / test (push) Successful in 57s
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)
All checks were successful
Tests / lint (push) Successful in 4s
Tests / test (push) Successful in 1m27s
2026-03-19 02:01:58 -04:00
86224d042d feat: Workshop Phase 4 — visitor chat via WebSocket bark engine (#394)
All checks were successful
Tests / lint (push) Successful in 5s
Tests / test (push) Successful in 1m27s
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)
All checks were successful
Tests / lint (push) Successful in 4s
Tests / test (push) Successful in 1m4s
Co-authored-by: Kimi Agent <kimi@timmy.local>
Co-committed-by: Kimi Agent <kimi@timmy.local>
2026-03-19 01:28:57 -04:00
da43421d4e feat: broadcast Timmy state changes via WS relay (#380)
All checks were successful
Tests / lint (push) Successful in 3s
Tests / test (push) Successful in 54s
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)
All checks were successful
Tests / lint (push) Successful in 4s
Tests / test (push) Successful in 1m14s
2026-03-18 22:33:06 -04:00
3108971bd5 [loop-cycle-155] feat: GET /api/world/state — Workshop bootstrap endpoint (#373) (#378)
All checks were successful
Tests / lint (push) Successful in 3s
Tests / test (push) Successful in 1m29s
2026-03-18 22:13:49 -04:00