Commit d41a755
committed
v0.5.0: Knowledge Graph with Ebbinghaus memory decay + Native MCP client
Killer features for virality:
Knowledge Graph (internal/knowledge/):
- Entity storage with types: person, place, org, concept, preference, project, event, fact
- Weighted relationships between entities (directed graph)
- Ebbinghaus forgetting curve: S(t) = S₀ × e^(-λt) with spacing effect
- Automatic pruning of decayed memories below threshold
- Context injection into system prompt (strongest memories)
- Full CRUD API endpoints + Web UI panel with search
- 9/9 tests passing
Native MCP Client (internal/mcp/):
- Model Context Protocol client supporting stdio and SSE transports
- JSON-RPC 2.0 implementation (zero external dependencies)
- Tool discovery and invocation across connected servers
- Auto-reconnect from persisted server configurations
- Web UI panel for connection management
- 13/13 tests passing
Agent Integration:
- Knowledge graph skills: add, relate, query, relations, delete, stats
- MCP skills: connect, disconnect, list, call
- System prompt includes knowledge graph context + MCP tool listings
- Auto-connect configured MCP servers on startup
Web UI:
- Knowledge Graph panel with entity browser, search, stats, relation viewer
- MCP Servers panel with connection form, server list, tool inventory
- Keyboard shortcuts: Ctrl+Shift+G (Knowledge), Ctrl+Shift+M (MCP)
- Welcome screen updated with new shortcuts
README updated with new features, architecture diagram, API endpoints.
Binary size: 11MB (unchanged). All 132 tests passing.1 parent f323de6 commit d41a755
15 files changed
Lines changed: 2854 additions & 120 deletions
File tree
- cmd/pennyclaw
- internal
- agent
- channels/web
- knowledge
- mcp
- skills
- workspace
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
111 | 121 | | |
112 | 122 | | |
113 | 123 | | |
| |||
135 | 145 | | |
136 | 146 | | |
137 | 147 | | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
138 | 168 | | |
139 | 169 | | |
140 | 170 | | |
| |||
193 | 223 | | |
194 | 224 | | |
195 | 225 | | |
| 226 | + | |
| 227 | + | |
196 | 228 | | |
197 | 229 | | |
198 | 230 | | |
199 | | - | |
| 231 | + | |
200 | 232 | | |
201 | 233 | | |
202 | 234 | | |
| |||
224 | 256 | | |
225 | 257 | | |
226 | 258 | | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
227 | 262 | | |
228 | 263 | | |
229 | 264 | | |
| |||
246 | 281 | | |
247 | 282 | | |
248 | 283 | | |
| 284 | + | |
249 | 285 | | |
250 | 286 | | |
| 287 | + | |
251 | 288 | | |
252 | 289 | | |
253 | 290 | | |
| |||
262 | 299 | | |
263 | 300 | | |
264 | 301 | | |
265 | | - | |
266 | | - | |
| 302 | + | |
| 303 | + | |
267 | 304 | | |
268 | 305 | | |
269 | 306 | | |
| |||
438 | 475 | | |
439 | 476 | | |
440 | 477 | | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
441 | 487 | | |
442 | 488 | | |
443 | 489 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
| 90 | + | |
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
| 18 | + | |
17 | 19 | | |
18 | 20 | | |
19 | 21 | | |
| |||
38 | 40 | | |
39 | 41 | | |
40 | 42 | | |
| 43 | + | |
| 44 | + | |
41 | 45 | | |
42 | 46 | | |
43 | 47 | | |
| |||
104 | 108 | | |
105 | 109 | | |
106 | 110 | | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
107 | 124 | | |
108 | 125 | | |
109 | 126 | | |
| |||
118 | 135 | | |
119 | 136 | | |
120 | 137 | | |
| 138 | + | |
| 139 | + | |
121 | 140 | | |
122 | 141 | | |
123 | 142 | | |
| |||
152 | 171 | | |
153 | 172 | | |
154 | 173 | | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
155 | 196 | | |
156 | 197 | | |
157 | 198 | | |
| |||
443 | 484 | | |
444 | 485 | | |
445 | 486 | | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
446 | 501 | | |
447 | | - | |
| 502 | + | |
448 | 503 | | |
449 | 504 | | |
450 | 505 | | |
451 | | - | |
| 506 | + | |
452 | 507 | | |
453 | 508 | | |
454 | 509 | | |
| |||
516 | 571 | | |
517 | 572 | | |
518 | 573 | | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
519 | 590 | | |
520 | 591 | | |
521 | 592 | | |
| |||
564 | 635 | | |
565 | 636 | | |
566 | 637 | | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
567 | 648 | | |
568 | 649 | | |
569 | 650 | | |
| |||
0 commit comments