personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

sync working tree: AGENTS.md generalization + baseline drift from concurrent lodes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+35 -34
+33 -33
tests/baselines/api/graph/graph.json
··· 399 399 "kg_edge_count": 1, 400 400 "name": "Balthasar Davi", 401 401 "observation_depth": 2, 402 - "recency": 0.63, 403 - "score": 63.9, 402 + "recency": 0.6, 403 + "score": 63.8, 404 404 "type": "person" 405 405 }, 406 406 { ··· 412 412 "kg_edge_count": 1, 413 413 "name": "Mesh Routing", 414 414 "observation_depth": 3, 415 - "recency": 0.63, 416 - "score": 65.9, 415 + "recency": 0.6, 416 + "score": 65.8, 417 417 "type": "project" 418 418 }, 419 419 { ··· 425 425 "kg_edge_count": 0, 426 426 "name": "Verona Ventures", 427 427 "observation_depth": 2, 428 - "recency": 0.63, 429 - "score": 58.9, 428 + "recency": 0.6, 429 + "score": 58.8, 430 430 "type": "company" 431 431 }, 432 432 { ··· 438 438 "kg_edge_count": 1, 439 439 "name": "Capulet Industries", 440 440 "observation_depth": 0, 441 - "recency": 0.6015, 441 + "recency": 0.6, 442 442 "score": 23.8, 443 443 "type": "company" 444 444 }, ··· 451 451 "kg_edge_count": 3, 452 452 "name": "Mercutio Escalus", 453 453 "observation_depth": 3, 454 - "recency": 0.691, 455 - "score": 89.1, 454 + "recency": 0.7, 455 + "score": 89.0, 456 456 "type": "person" 457 457 }, 458 458 { ··· 464 464 "kg_edge_count": 3, 465 465 "name": "Tybalt Capulet", 466 466 "observation_depth": 4, 467 - "recency": 0.691, 468 - "score": 92.1, 467 + "recency": 0.7, 468 + "score": 92.0, 469 469 "type": "person" 470 470 }, 471 471 { ··· 477 477 "kg_edge_count": 4, 478 478 "name": "Juliet Capulet", 479 479 "observation_depth": 2, 480 - "recency": 0.691, 481 - "score": 93.1, 480 + "recency": 0.7, 481 + "score": 93.0, 482 482 "type": "person" 483 483 }, 484 484 { ··· 490 490 "kg_edge_count": 1, 491 491 "name": "Schema Bridge", 492 492 "observation_depth": 2, 493 - "recency": 0.63, 494 - "score": 63.9, 493 + "recency": 0.6, 494 + "score": 63.8, 495 495 "type": "project" 496 496 }, 497 497 { ··· 503 503 "kg_edge_count": 9, 504 504 "name": "Romeo Montague", 505 505 "observation_depth": 2, 506 - "recency": 0.691, 507 - "score": 54.1, 506 + "recency": 0.7, 507 + "score": 54.0, 508 508 "type": "person" 509 509 }, 510 510 { ··· 516 516 "kg_edge_count": 1, 517 517 "name": "Rosaline Prince", 518 518 "observation_depth": 2, 519 - "recency": 0.691, 520 - "score": 64.1, 519 + "recency": 0.7, 520 + "score": 64.0, 521 521 "type": "person" 522 522 }, 523 523 { ··· 529 529 "kg_edge_count": 2, 530 530 "name": "Montague Tech", 531 531 "observation_depth": 3, 532 - "recency": 0.63, 533 - "score": 74.9, 532 + "recency": 0.6, 533 + "score": 74.8, 534 534 "type": "company" 535 535 }, 536 536 { ··· 542 542 "kg_edge_count": 2, 543 543 "name": "Prince Escalus", 544 544 "observation_depth": 2, 545 - "recency": 0.691, 546 - "score": 77.1, 545 + "recency": 0.7, 546 + "score": 77.0, 547 547 "type": "person" 548 548 }, 549 549 { ··· 555 555 "kg_edge_count": 8, 556 556 "name": "Verona Platform", 557 557 "observation_depth": 3, 558 - "recency": 0.691, 559 - "score": 110.1, 558 + "recency": 0.7, 559 + "score": 110.0, 560 560 "type": "project" 561 561 }, 562 562 { ··· 568 568 "kg_edge_count": 1, 569 569 "name": "Nurse Angela", 570 570 "observation_depth": 2, 571 - "recency": 0.6752, 571 + "recency": 0.7, 572 572 "score": 69.0, 573 573 "type": "person" 574 574 }, ··· 581 581 "kg_edge_count": 2, 582 582 "name": "Paris Duke", 583 583 "observation_depth": 2, 584 - "recency": 0.691, 585 - "score": 55.1, 584 + "recency": 0.7, 585 + "score": 55.0, 586 586 "type": "person" 587 587 }, 588 588 { ··· 594 594 "kg_edge_count": 1, 595 595 "name": "Benvolio Montague", 596 596 "observation_depth": 3, 597 - "recency": 0.691, 598 - "score": 75.1, 597 + "recency": 0.7, 598 + "score": 75.0, 599 599 "type": "person" 600 600 }, 601 601 { ··· 607 607 "kg_edge_count": 2, 608 608 "name": "Friar Lawrence", 609 609 "observation_depth": 2, 610 - "recency": 0.691, 611 - "score": 79.1, 610 + "recency": 0.7, 611 + "score": 79.0, 612 612 "type": "person" 613 613 } 614 614 ], 615 615 "stats": { 616 616 "co_occurrence_edge_count": 26, 617 617 "explicit_edge_count": 20, 618 - "total_entities": 34, 618 + "total_entities": 33, 619 619 "total_signals": 124 620 620 } 621 621 }
+2 -1
tests/verify_api.py
··· 421 421 and isinstance(item_value, (int, float)) 422 422 else ( 423 423 round(item_value, 1) 424 - if item_key == "score" and isinstance(item_value, float) 424 + if item_key in {"score", "recency"} 425 + and isinstance(item_value, float) 425 426 else walk(item_value, item_key) 426 427 ) 427 428 )