852fec3681
[gemini] feat: Integrate ResearchOrchestrator with Paperclip ( #978 ) ( #1111 )
...
Co-authored-by: Google Gemini <gemini@hermes.local >
Co-committed-by: Google Gemini <gemini@hermes.local >
2026-03-23 18:09:29 +00:00
43030b7db2
[claude] DRY up tasks_pending/active/completed in tasks.py ( #942 ) ( #1020 )
...
Co-authored-by: Claude (Opus 4.6) <claude@hermes.local >
Co-committed-by: Claude (Opus 4.6) <claude@hermes.local >
2026-03-23 15:10:05 +00:00
df7358b383
[claude] Extract hardcoded sats limit in consult_grok() ( #937 ) ( #1058 )
...
Co-authored-by: Claude (Opus 4.6) <claude@hermes.local >
Co-committed-by: Claude (Opus 4.6) <claude@hermes.local >
2026-03-23 15:07:40 +00:00
7f875398fc
[claude] Add sovereignty metrics tracking + dashboard panel ( #981 ) ( #1083 )
2026-03-23 14:09:03 +00:00
e255e7eb2a
[kimi] Add docstrings to system.py route handlers ( #940 ) ( #992 )
2026-03-22 22:12:36 +00:00
c3b6eb71c0
[kimi] Add docstrings to src/dashboard/routes/tasks.py ( #939 ) ( #991 )
2026-03-22 22:08:28 +00:00
447e2b18c2
[kimi] Generate daily/weekly agent scorecards ( #712 ) ( #790 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-22 01:41:52 +00:00
2f15435fed
[kimi] Implement quick health snapshot before coding ( #710 ) ( #828 )
2026-03-21 21:53:40 +00:00
a95cf806c8
[kimi] Implement token quest system for agents ( #713 ) ( #789 )
2026-03-21 20:45:35 +00:00
7e983fcdb3
[kimi] Add dashboard card for Daily Run and triage metrics ( #718 ) ( #786 )
2026-03-21 19:58:25 +00:00
b08ce53bab
[kimi] Refactor request_logging.py::dispatch ( #616 ) ( #765 )
2026-03-21 18:06:34 +00:00
dc9f0c04eb
[kimi] Add rate limiting middleware for Matrix API endpoints ( #683 ) ( #746 )
2026-03-21 16:23:16 +00:00
815933953c
[kimi] Add WebSocket authentication for Matrix connections ( #682 ) ( #744 )
2026-03-21 16:14:05 +00:00
d54493a87b
[kimi] Add /api/matrix/health endpoint ( #685 ) ( #745 )
2026-03-21 15:51:29 +00:00
695d1401fd
[kimi] Add CORS config for Matrix frontend origin ( #679 ) ( #741 )
2026-03-21 14:56:43 +00:00
ddadc95e55
[kimi] Add /api/matrix/memory/search endpoint ( #678 ) ( #740 )
2026-03-21 14:52:31 +00:00
8fc8e0fc3d
[kimi] Add /api/matrix/thoughts endpoint for recent thought stream ( #677 ) ( #739 )
2026-03-21 14:44:46 +00:00
2a7b6d5708
[kimi] Add /api/matrix/bark endpoint — HTTP fallback for bark messages ( #675 ) ( #737 )
2026-03-21 14:32:04 +00:00
9d4ac8e7cc
[kimi] Add /api/matrix/config endpoint for world configuration ( #674 ) ( #736 )
2026-03-21 14:25:19 +00:00
c9601ba32c
[kimi] Add /api/matrix/agents endpoint for Matrix visualization ( #673 ) ( #735 )
2026-03-21 14:18:46 +00:00
3474eeb4eb
[kimi] refactor: extract presence state serializer from workshop heartbeat ( #668 ) ( #697 )
2026-03-21 13:41:42 +00:00
e3d425483d
[kimi] fix: add logging to silent except Exception handlers ( #646 ) ( #692 )
2026-03-21 03:50:26 +00:00
c9445e3056
[kimi] refactor: extract helpers from CSRFMiddleware.dispatch ( #628 ) ( #691 )
2026-03-21 03:41:09 +00:00
9d0f5c778e
[loop-cycle-2] fix: resolve endpoint before execution in CSRF middleware ( #626 ) ( #656 )
2026-03-20 23:05:09 +00:00
2bfc44ea1b
[loop-cycle-1] refactor: extract _try_prune helper and fix f-string logging ( #653 ) ( #657 )
2026-03-20 17:44:32 -04:00
faad0726a2
[loop-cycle-1666] fix: replace remaining deprecated utcnow() in calm.py ( #633 ) ( #644 )
2026-03-20 17:22:35 -04:00
6f66670396
[loop-cycle-1664] fix: replace deprecated datetime.utcnow() ( #633 ) ( #636 )
2026-03-20 17:01:19 -04:00
a3f61c67d3
refactor: break up post_morning_ritual into helpers ( #631 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 16:43:14 -04:00
2c217104db
feat: real-time Spark visualization in Mission Control ( #615 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 16:22:15 -04:00
9732c80892
feat: Real-time Spark Visualization in Tower Dashboard ( #612 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 16:10:42 -04:00
4ba8d25749
feat: Lightning Network integration for tool usage ( #610 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-20 13:07:02 -04:00
bc010ecfba
[loop-cycle-1233] refactor: add docstrings to calm.py route handlers ( #569 ) ( #585 )
2026-03-20 11:44:06 -04:00
50c8a5428e
refactor: break up api_chat() into helpers ( #544 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 20:49:04 -04:00
88e59f7c17
refactor: break up chat_agent() into helpers ( #542 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 20:38:46 -04:00
2d69f73d9d
fix: add timeout to thinking/loop-QA schedulers ( #530 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 20:18:31 -04:00
9f2728f529
refactor: break up lifespan() into testable helpers ( #515 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 19:30:32 -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
5f52dd54c0
[loop-cycle-932] fix: add logging to bare except Exception blocks ( #484 ) ( #501 )
2026-03-19 19:05:02 -04:00
7f20742fcf
fix: replace hardcoded secret placeholder in CSRF middleware docstring ( #488 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 15:52:29 -04:00
50aaf60db2
[loop-cycle-2] fix: strip CORS wildcards in production ( #462 ) ( #469 )
2026-03-19 15:05:27 -04:00
a751be3038
fix: default CORS origins to localhost instead of wildcard ( #467 )
...
Co-authored-by: Kimi Agent <kimi@timmy.local >
Co-committed-by: Kimi Agent <kimi@timmy.local >
2026-03-19 14:57:36 -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
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
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
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