personal memory agent
0
fork

Configure Feed

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

Round FTS5 score floats in API baseline normalization

Score values from SQLite FTS5 drift slightly when the index is rebuilt,
causing spurious baseline test failures. Round score to 1 decimal place
in normalize() — same pattern as the existing mtime zeroing — and
regenerate the two affected search baselines.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

+40 -36
+1 -1
tests/baselines/api/search/day-results.json
··· 14 14 "id": "20260304/agents/knowledge_graph.md:7", 15 15 "idx": 7, 16 16 "path": "20260304/agents/knowledge_graph.md", 17 - "score": -2.4607010615645097, 17 + "score": -2.6, 18 18 "stream": null, 19 19 "text": "# Part 1: Entity Extraction and Relationship Mapping\n\n## Relationship Mapping\n\n| Source Name | Target Name | Relationship Type | Context |\n| :--- | :--- | :--- | :--- |\n| **Romeo Montague** | **Juliet Capulet** | `met-at-conference` | First <strong>meeting</strong> at Denver Tech Summit keynote. |\n" 20 20 }
+34 -34
tests/baselines/api/search/search.json
··· 79 79 "id": "20260306/default/093000_300/agents/audio.md:0", 80 80 "idx": 0, 81 81 "path": "20260306/default/093000_300/agents/audio.md", 82 - "score": -2.513342214501021, 82 + "score": -2.7, 83 83 "stream": "default", 84 84 "text": "# Audio Summary Morning standup. Benvolio noticed <strong>Romeo</strong>'s late-night GitHub activity and pressed him about API gateway commits. <strong>Romeo</strong> deflected, calling it a personal mesh routing prototype. Mercutio covered for him. Balthasar reported progress on the mesh routing fallback PR with an edge case for <strong>Romeo</strong> to review. Benvolio scheduled..." 85 85 }, ··· 95 95 "id": "facets/montague/entities/20260306.jsonl:0", 96 96 "idx": 0, 97 97 "path": "facets/montague/entities/20260306.jsonl", 98 - "score": -3.1315720875097877, 98 + "score": -3.3, 99 99 "stream": null, 100 100 "text": "### Person: <strong>Romeo</strong> Montague\n\n\nContinued Verona Platform development\n\n" 101 101 }, ··· 111 111 "id": "facets/montague/entities/20260306.jsonl:3", 112 112 "idx": 3, 113 113 "path": "facets/montague/entities/20260306.jsonl", 114 - "score": -2.959384619130841, 114 + "score": -3.1, 115 115 "stream": null, 116 116 "text": "### Person: Balthasar Davi\n\n\nReviewed mesh routing PR with <strong>Romeo</strong>\n\n" 117 117 }, ··· 127 127 "id": "facets/montague/entities/20260306.jsonl:4", 128 128 "idx": 4, 129 129 "path": "facets/montague/entities/20260306.jsonl", 130 - "score": -3.043044538265084, 130 + "score": -3.2, 131 131 "stream": null, 132 132 "text": "### Person: Mercutio Escalus\n\n\nCovered for <strong>Romeo</strong> during standup\n\n" 133 133 }, ··· 143 143 "id": "20260306/default/093000_300/agents/screen.md:0", 144 144 "idx": 0, 145 145 "path": "20260306/default/093000_300/agents/screen.md", 146 - "score": -2.7339018761080696, 146 + "score": -2.9, 147 147 "stream": "default", 148 148 "text": "# Screen Summary\n\nSlack standup channel. Benvolio questioning <strong>Romeo</strong> about late-night commits.\n" 149 149 } ··· 168 168 "id": "facets/verona/logs/20260309.jsonl:1", 169 169 "idx": 1, 170 170 "path": "facets/verona/logs/20260309.jsonl", 171 - "score": -2.321228398666091, 171 + "score": -2.5, 172 172 "stream": null, 173 173 "text": "### Deploy Complete by <strong>romeo</strong>_montague\n\n**Source:** deploy | **Time:** 13:45:00\n\n**Parameters:**\n- service: verona-gateway\n- version: 0.9.0\n" 174 174 }, ··· 184 184 "id": "20260309/default/090000_300/agents/audio.md:0", 185 185 "idx": 0, 186 186 "path": "20260309/default/090000_300/agents/audio.md", 187 - "score": -2.180188833524021, 187 + "score": -2.4, 188 188 "stream": "default", 189 189 "text": "# Audio Summary\n\n<strong>Romeo</strong> confessed the project to Benvolio and asked for infrastructure help. Benvolio agreed to spin up a Kubernetes staging cluster.\n" 190 190 }, ··· 200 200 "id": "facets/montague/entities/20260309.jsonl:0", 201 201 "idx": 0, 202 202 "path": "facets/montague/entities/20260309.jsonl", 203 - "score": -2.959384619130841, 203 + "score": -3.1, 204 204 "stream": null, 205 205 "text": "### Person: <strong>Romeo</strong> Montague\n\n\nConfessed project to Benvolio, preparing demo\n\n" 206 206 }, ··· 216 216 "id": "facets/montague/calendar/20260309.jsonl:0", 217 217 "idx": 0, 218 218 "path": "facets/montague/calendar/20260309.jsonl", 219 - "score": -2.481778216680671, 219 + "score": -2.7, 220 220 "stream": null, 221 221 "text": "### Event: Team Standup\n\n\n**Time Occurred:** 09:00 - 09:30\n**Participants:** <strong>Romeo</strong> Montague, Benvolio Montague\n\nDaily sync\n" 222 222 }, ··· 232 232 "id": "facets/verona/calendar/20260309.jsonl:0", 233 233 "idx": 0, 234 234 "path": "facets/verona/calendar/20260309.jsonl", 235 - "score": -2.2252582833598957, 235 + "score": -2.4, 236 236 "stream": null, 237 237 "text": "### Event: Demo Sprint\n\n\n**Time Occurred:** 09:00 - 21:00\n**Participants:** <strong>Romeo</strong> Montague, Juliet Capulet, Benvolio Montague\n\nFull day board presentation preparation\n" 238 238 } ··· 257 257 "id": "20260307/default/100000_300/agents/audio.md:0", 258 258 "idx": 0, 259 259 "path": "20260307/default/100000_300/agents/audio.md", 260 - "score": -2.9723396084838662, 260 + "score": -3.2, 261 261 "stream": "default", 262 262 "text": "# Audio Summary\n\nHeated confrontation. Tybalt Capulet accused <strong>Romeo</strong> of stealing Capulet IP. Mercutio defended <strong>Romeo</strong> and had his Capulet consulting contract terminated by Tybalt.\n" 263 263 }, ··· 273 273 "id": "20260307/default/150000_300/agents/audio.md:0", 274 274 "idx": 0, 275 275 "path": "20260307/default/150000_300/agents/audio.md", 276 - "score": -3.2136618412600435, 276 + "score": -3.4, 277 277 "stream": "default", 278 278 "text": "# Audio Summary\n\nEmergency meeting at Montague Tech. Benvolio questioned <strong>Romeo</strong> about the secret project. <strong>Romeo</strong> clarified no company IP was shared. Team discussed legal exposure. <strong>Romeo</strong> proposed Professor Lawrence as mediator.\n" 279 279 }, ··· 289 289 "id": "facets/montague/entities/20260307.jsonl:0", 290 290 "idx": 0, 291 291 "path": "facets/montague/entities/20260307.jsonl", 292 - "score": -2.959384619130841, 292 + "score": -3.1, 293 293 "stream": null, 294 294 "text": "### Person: <strong>Romeo</strong> Montague\n\n\nConfronted by Tybalt, called emergency meeting\n\n" 295 295 }, ··· 305 305 "id": "facets/montague/calendar/20260307.jsonl:0", 306 306 "idx": 0, 307 307 "path": "facets/montague/calendar/20260307.jsonl", 308 - "score": -2.272230442078493, 308 + "score": -2.4, 309 309 "stream": null, 310 310 "text": "### Event: Emergency Team Meeting\n\n\n**Time Occurred:** 15:00 - 16:00\n**Participants:** <strong>Romeo</strong> Montague, Benvolio Montague\n\nCrisis response to Capulet situation\n" 311 311 }, ··· 321 321 "id": "facets/montague/events/20260307.jsonl:0", 322 322 "idx": 0, 323 323 "path": "facets/montague/events/20260307.jsonl", 324 - "score": -2.8167826371644256, 324 + "score": -3.0, 325 325 "stream": null, 326 326 "text": "### Meeting: Confrontation with Tybalt\n\n\n**Time Occurred:** 10:00 - 10:30\n**Participants:** <strong>Romeo</strong> Montague, Tybalt Capulet, Mercutio Escalus\n\nTybalt accused <strong>Romeo</strong> of IP theft\n\nMercutio fired from Capulet contract\n" 327 327 } ··· 346 346 "id": "facets/montague/entities/20260308.jsonl:0", 347 347 "idx": 0, 348 348 "path": "facets/montague/entities/20260308.jsonl", 349 - "score": -2.959384619130841, 349 + "score": -3.1, 350 350 "stream": null, 351 351 "text": "### Person: <strong>Romeo</strong> Montague\n\n\nUnder board pressure, planning board presentation\n\n" 352 352 }, ··· 362 362 "id": "facets/verona/events/20260308.jsonl:0", 363 363 "idx": 0, 364 364 "path": "facets/verona/events/20260308.jsonl", 365 - "score": -1.9797079524508647, 365 + "score": -2.1, 366 366 "stream": null, 367 367 "text": "### Meeting: Strategy Call with Professor Lawrence\n\n\n**Time Occurred:** 10:00 - 11:00\n**Participants:** <strong>Romeo</strong> Montague, Juliet Capulet, Friar Lawrence\n\nJoint venture strategy planning\n\nProposed board presentation strategy\n" 368 368 }, ··· 378 378 "id": "20260308/agents/knowledge_graph.md:2", 379 379 "idx": 2, 380 380 "path": "20260308/agents/knowledge_graph.md", 381 - "score": -1.8761919776096616, 381 + "score": -2.0, 382 382 "stream": null, 383 383 "text": "# Part 1: Entity Extraction and Relationship Mapping ## Entity Profiles | Entity Name | Entity Type | First Appearance | Total Engagement | Context | | :--- | :--- | :--- | :--- | :--- | | **<strong>Romeo</strong> Montague** | Person | 10:00 | High | Under board pressure,..." 384 384 }, ··· 394 394 "id": "20260308/agents/meetings.md:0", 395 395 "idx": 0, 396 396 "path": "20260308/agents/meetings.md", 397 - "score": -2.8051455055066485, 397 + "score": -3.0, 398 398 "stream": null, 399 399 "text": "# Meetings\n\n- 10:00 Strategy Call with Professor Lawrence, <strong>Romeo</strong>, and Juliet\n" 400 400 } ··· 419 419 "id": "facets/verona/logs/20260305.jsonl:0", 420 420 "idx": 0, 421 421 "path": "facets/verona/logs/20260305.jsonl", 422 - "score": -2.4258495393901396, 422 + "score": -2.6, 423 423 "stream": null, 424 424 "text": "### Repo Created by <strong>romeo</strong>_montague\n\n**Source:** github | **Time:** 22:05:00\n\n**Parameters:**\n- repo: balcony-app\n- visibility: private\n" 425 425 }, ··· 435 435 "id": "20260305/default/090000_300/agents/audio.md:0", 436 436 "idx": 0, 437 437 "path": "20260305/default/090000_300/agents/audio.md", 438 - "score": -2.8167826371644256, 438 + "score": -3.0, 439 439 "stream": "default", 440 440 "text": "# Audio Summary\n\nMorning standup at Montague Tech. Benvolio reported CI pipeline is green. <strong>Romeo</strong> mentioned wanting to explore ideas from the conference. Mercutio teased about <strong>Romeo</strong> meeting someone.\n" 441 441 }, ··· 451 451 "id": "facets/montague/entities/20260305.jsonl:0", 452 452 "idx": 0, 453 453 "path": "facets/montague/entities/20260305.jsonl", 454 - "score": -2.959384619130841, 454 + "score": -3.1, 455 455 "stream": null, 456 456 "text": "### Person: <strong>Romeo</strong> Montague\n\n\nStarted Balcony App prototype with Juliet\n\n" 457 457 }, ··· 467 467 "id": "facets/verona/entities/20260305.jsonl:0", 468 468 "idx": 0, 469 469 "path": "facets/verona/entities/20260305.jsonl", 470 - "score": -2.959384619130841, 470 + "score": -3.1, 471 471 "stream": null, 472 472 "text": "### Person: <strong>Romeo</strong> Montague\n\n\nSet up private repo for collaboration\n\n" 473 473 }, ··· 483 483 "id": "facets/montague/events/20260305.jsonl:0", 484 484 "idx": 0, 485 485 "path": "facets/montague/events/20260305.jsonl", 486 - "score": -2.9723396084838662, 486 + "score": -3.2, 487 487 "stream": null, 488 488 "text": "### Meeting: Montague Tech Daily Standup\n\n\n**Time Occurred:** 09:00 - 09:30\n**Participants:** <strong>Romeo</strong> Montague, Benvolio Montague, Mercutio Escalus\n\nTeam standup\n\n<strong>Romeo</strong> mentioned conference ideas\n" 489 489 } ··· 508 508 "id": "facets/montague/entities/20260310.jsonl:0", 509 509 "idx": 0, 510 510 "path": "facets/montague/entities/20260310.jsonl", 511 - "score": -2.8051455055066485, 511 + "score": -3.0, 512 512 "stream": null, 513 513 "text": "### Person: <strong>Romeo</strong> Montague\n\n\nNamed co-lead of Verona Platform joint venture\n\n" 514 514 }, ··· 524 524 "id": "facets/verona/entities/20260310.jsonl:0", 525 525 "idx": 0, 526 526 "path": "facets/verona/entities/20260310.jsonl", 527 - "score": -2.880201606698147, 527 + "score": -3.1, 528 528 "stream": null, 529 529 "text": "### Person: <strong>Romeo</strong> Montague\n\n\nNamed co-lead of approved joint venture\n\n" 530 530 }, ··· 540 540 "id": "facets/montague/calendar/20260310.jsonl:0", 541 541 "idx": 0, 542 542 "path": "facets/montague/calendar/20260310.jsonl", 543 - "score": -2.2252582833598957, 543 + "score": -2.4, 544 544 "stream": null, 545 545 "text": "### Event: Joint Board Meeting\n\n\n**Time Occurred:** 10:00 - 12:00\n**Participants:** <strong>Romeo</strong> Montague, Benvolio Montague\n\nQuarterly review with Verona Platform presentation\n" 546 546 }, ··· 556 556 "id": "facets/verona/calendar/20260310.jsonl:0", 557 557 "idx": 0, 558 558 "path": "facets/verona/calendar/20260310.jsonl", 559 - "score": -2.2252582833598957, 559 + "score": -2.4, 560 560 "stream": null, 561 561 "text": "### Event: Board Presentation\n\n\n**Time Occurred:** 10:00 - 12:00\n**Participants:** <strong>Romeo</strong> Montague, Juliet Capulet, Friar Lawrence\n\nVerona Platform joint venture pitch\n" 562 562 }, ··· 572 572 "id": "20260310/agents/meetings.md:0", 573 573 "idx": 0, 574 574 "path": "20260310/agents/meetings.md", 575 - "score": -2.880201606698147, 575 + "score": -3.1, 576 576 "stream": null, 577 577 "text": "# Meetings\n\n- 08:30 Pre-Board Meeting Prep (<strong>Romeo</strong>, Juliet, Benvolio)\n" 578 578 } ··· 597 597 "id": "20260304/default/180000_300/agents/audio.md:0", 598 598 "idx": 0, 599 599 "path": "20260304/default/180000_300/agents/audio.md", 600 - "score": -2.780404616965851, 600 + "score": -3.0, 601 601 "stream": "default", 602 602 "text": "# Audio Summary\n\nEvening mixer at Denver Tech Summit. <strong>Romeo</strong> and Juliet had their first extended conversation about combining their API approaches. Mercutio tried to pull <strong>Romeo</strong> away to karaoke.\n" 603 603 }, ··· 613 613 "id": "facets/capulet/entities/20260304.jsonl:1", 614 614 "idx": 1, 615 615 "path": "facets/capulet/entities/20260304.jsonl", 616 - "score": -3.1315720875097877, 616 + "score": -3.3, 617 617 "stream": null, 618 618 "text": "### Person: Tybalt Capulet\n\n\nConfronted <strong>Romeo</strong> at hackathon\n\n" 619 619 }, ··· 629 629 "id": "facets/montague/entities/20260304.jsonl:0", 630 630 "idx": 0, 631 631 "path": "facets/montague/entities/20260304.jsonl", 632 - "score": -2.880201606698147, 632 + "score": -3.1, 633 633 "stream": null, 634 634 "text": "### Person: <strong>Romeo</strong> Montague\n\n\nAttended Denver Tech Summit, met Juliet Capulet\n\n" 635 635 }, ··· 645 645 "id": "facets/capulet/events/20260304.jsonl:1", 646 646 "idx": 1, 647 647 "path": "facets/capulet/events/20260304.jsonl", 648 - "score": -3.056744034628046, 648 + "score": -3.3, 649 649 "stream": null, 650 650 "text": "### Social: Conference Mixer\n\n\n**Time Occurred:** 18:00 - 20:00\n**Participants:** Juliet Capulet, <strong>Romeo</strong> Montague\n\nNetworking event\n\nJuliet and <strong>Romeo</strong> exchanged Signal contacts\n" 651 651 }, ··· 661 661 "id": "facets/montague/events/20260304.jsonl:1", 662 662 "idx": 1, 663 663 "path": "facets/montague/events/20260304.jsonl", 664 - "score": -3.0139510097863376, 664 + "score": -3.2, 665 665 "stream": null, 666 666 "text": "### Hackathon: Hackathon - API Bridge Challenge\n\n\n**Time Occurred:** 14:00 - 18:00\n**Participants:** <strong>Romeo</strong> Montague, Mercutio Escalus\n\nBuilt API bridge prototype\n\nTybalt confronted <strong>Romeo</strong>\n" 667 667 }
+5 -1
tests/verify_api.py
··· 455 455 item_key: ( 456 456 0 457 457 if item_key == "mtime" and isinstance(item_value, (int, float)) 458 - else walk(item_value, item_key) 458 + else ( 459 + round(item_value, 1) 460 + if item_key == "score" and isinstance(item_value, float) 461 + else walk(item_value, item_key) 462 + ) 459 463 ) 460 464 for item_key, item_value in value.items() 461 465 }