opencode-semantic-memory 0.8.2__tar.gz → 0.8.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/0/0/d/f/d/00dfda658f2fcde6926308004100798ad2247e2f45d1313ebfef973d +0 -0
  2. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/9/e/d/3/7/9ed377a761861346a483546ee4ebbe92a83f2d3a40e917849c2eb140 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/1/a/a/9/3/1aa93177f63584761c951c731336f631596e12d3b4e0b67c5c164470 +0 -0
  3. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/1/f/d/9/a/1fd9ade2b751542e96db097082f121ecac23098b3cd95c8a877f0716 +0 -0
  4. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/2/a/8/c/5/2a8c5a56aa7e75a42e474464b0e75e78380050445086fa2e6626b678 +0 -0
  5. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/e/d/2/5/d/ed25d1bb38edf83d84e0a08c7e2111da8cb788eddb019df7a96d3213 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/2/e/5/b/6/2e5b6ced06806dcc8a76919087cfc0d76c4240a8acb8d34511ad15d6 +0 -0
  6. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/9/8/8/9/3/98893f0b227721063df57aa66878132bb1592344007b1842b6681340 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/3/2/7/f/0/327f0380de23010729d12b6a8a48f24b952353d527064c8bf3cfd875 +0 -0
  7. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/3/9/7/4/33974f84394d9a943f68359da08431dab4af9f86c33962982ea21b5f +0 -0
  8. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/3/6/1/b/f/361bf053ab706a1212f013301d35a0c4b0af9cd8cc559d24c73d6a6f +0 -0
  9. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/3/8/4/d/c/384dc122488f965cecab29f1722d1db789313763e22373f38c7fbbef +0 -0
  10. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/4/b/e/0/7/4be07d3ac353e38d2c9e3a257cad36ee2a758fc88b4cd5f0d479a5a9 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/4/4/e/5/b/44e5b11a6caa92636d8ccfe658d420ba4ed8f67f7f4e835b214255aa +0 -0
  11. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/4/b/e/0/7/4be07d3ac353e38d2c9e3a257cad36ee2a758fc88b4cd5f0d479a5a9 +0 -0
  12. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/3/8/4/d/c/384dc122488f965cecab29f1722d1db789313763e22373f38c7fbbef → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/5/b/5/7/6/5b576ddc69cb2cda42f61333b85f066e4990a5eab5c96e0670cbb445 +0 -0
  13. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/b/d/8/9/5bd894eeb3dfe1c8aaee1daecdfb74bbb314293813a730238621f077 +0 -0
  14. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/5/b/e/1/1/5be1135dcb7a68de4427c71119ff80f66b671ae16db019966320bd6b +0 -0
  15. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/6/2/e/2/c/62e2caaadb9fd2d0a88b65a7d2043b2c343936491ef44dc753aa91e0 +0 -0
  16. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/3/2/7/f/0/327f0380de23010729d12b6a8a48f24b952353d527064c8bf3cfd875 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/6/c/3/7/f/6c37fbfdf697cce77ac3a3add5b61c639e47de9b9b9d1eb63cf429d5 +0 -0
  17. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/e/b/6/c/6eb6c130f2e60d2739ddb376352e395a8d86e4f80b402f5f7854d07d +0 -0
  18. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/7/a/5/f/7/7a5f717e7b3fb99ec006f4d173aad55224eb063005c662c586ba0518 +0 -0
  19. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/b/2/4/2/8b24226e2da88df4abeee0d8ca6bce79b19ca2bcd5f94b543939c66c +0 -0
  20. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/2/a/8/c/5/2a8c5a56aa7e75a42e474464b0e75e78380050445086fa2e6626b678 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/8/c/5/4/2/8c54213ac80b2536d9dbc88d24229468300e07d0d4883935e180e4d8 +0 -0
  21. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/d/0/e/1/8d0e104919449355aedb55b5b546bb9fd53f0e1a8ca1b082109464e9 +0 -0
  22. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/9/8/8/9/3/98893f0b227721063df57aa66878132bb1592344007b1842b6681340 +0 -0
  23. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/8/a/a/c/98aaccf247f7044601019ac72b3323db416a60a3b922e914db3b02bc +0 -0
  24. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/e/2/9/3/9e293f5a39d8466e2b362aa21216c5e4bc32898b0a39bfff792d145e +0 -0
  25. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/9/e/d/3/7/9ed377a761861346a483546ee4ebbe92a83f2d3a40e917849c2eb140 +0 -0
  26. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/9/f/9/3/7/9f937e100a133ace0f86a717e0ada066b9e9d82f4d2982affb4e0344 +0 -0
  27. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/4/6/b/7/a46b74c1407dd55ebf9eeb7eb2c73000028b7639a6ed9edc7981950c +0 -0
  28. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/6/f/4/d/b6f4dcb64ca093b3c3ae363be21ccc40760e60e58f24e7541ab876c7 +0 -0
  29. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/b/b/a/d/c/bbadc07fc383ff650474f2a8246a59ba64776ab6b35809d02400a398 +0 -0
  30. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/c/6/3/0/6/c6306d205b48faecb62eb823053e850df036f38e59b11523829f5c31 +0 -0
  31. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/c/d/2/3/6/cd2366d413a2e8e87377cfadece7d8173562ece48b2be25218d5714a +0 -0
  32. opencode_semantic_memory-0.8.4/.cache/pip/http-v2/d/c/b/6/1/dcb61fa48ca00e206822fed148e38d1d4494a0b43064c07dcadec607 +0 -0
  33. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/a/c/6/1/eac61126daf80149d2a016f12a54eab5e3b5c1dbc77410ff1a97edc4 +0 -0
  34. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/6/2/e/2/c/62e2caaadb9fd2d0a88b65a7d2043b2c343936491ef44dc753aa91e0 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/e/d/2/5/d/ed25d1bb38edf83d84e0a08c7e2111da8cb788eddb019df7a96d3213 +0 -0
  35. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/3/6/d/5/f36d58c71164036f2cff3c9d0bb0c2b4d1d94bd0814c26b9cbe036b2 +0 -0
  36. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/9/6/5/9/f9659e50df363f8369e6abe4c4008418f9de6a660e264dbba624109f +0 -0
  37. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/CHANGELOG.md +34 -0
  38. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/PKG-INFO +1 -1
  39. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/pyproject.toml +3 -1
  40. opencode_semantic_memory-0.8.4/scripts/memory-mcp.sh +65 -0
  41. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/background_worker.py +26 -2
  42. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/config.py +4 -1
  43. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/keywords.py +10 -2
  44. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/http_server.py +30 -8
  45. opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/__init__.py +64 -0
  46. opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/circuit_breaker.py +237 -0
  47. opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/executor.py +297 -0
  48. opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/handlers.py +465 -0
  49. opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/queue.py +424 -0
  50. opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/scheduler.py +265 -0
  51. opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/worker.py +237 -0
  52. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/models.py +149 -0
  53. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/server.py +186 -1
  54. opencode_semantic_memory-0.8.4/src/opencode_memory/storage/migrations.py +318 -0
  55. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/storage/sqlite.py +1099 -2
  56. opencode_semantic_memory-0.8.4/tests/test_bulk_keyword_boost.py +37 -0
  57. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_http_server.py +43 -7
  58. opencode_semantic_memory-0.8.4/tests/test_jobs.py +768 -0
  59. opencode_semantic_memory-0.8.4/tests/test_migrations.py +268 -0
  60. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_server.py +102 -0
  61. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_storage.py +582 -14
  62. opencode_semantic_memory-0.8.4/tests/test_worker_integration.py +310 -0
  63. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/0/0/d/f/d/00dfda658f2fcde6926308004100798ad2247e2f45d1313ebfef973d +0 -0
  64. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/1/a/a/9/3/1aa93177f63584761c951c731336f631596e12d3b4e0b67c5c164470 +0 -0
  65. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/1/f/d/9/a/1fd9ade2b751542e96db097082f121ecac23098b3cd95c8a877f0716 +0 -0
  66. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/2/e/5/b/6/2e5b6ced06806dcc8a76919087cfc0d76c4240a8acb8d34511ad15d6 +0 -0
  67. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/3/6/1/b/f/361bf053ab706a1212f013301d35a0c4b0af9cd8cc559d24c73d6a6f +0 -0
  68. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/4/4/e/5/b/44e5b11a6caa92636d8ccfe658d420ba4ed8f67f7f4e835b214255aa +0 -0
  69. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/5/b/5/7/6/5b576ddc69cb2cda42f61333b85f066e4990a5eab5c96e0670cbb445 +0 -0
  70. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/5/b/e/1/1/5be1135dcb7a68de4427c71119ff80f66b671ae16db019966320bd6b +0 -0
  71. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/6/c/3/7/f/6c37fbfdf697cce77ac3a3add5b61c639e47de9b9b9d1eb63cf429d5 +0 -0
  72. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/7/a/5/f/7/7a5f717e7b3fb99ec006f4d173aad55224eb063005c662c586ba0518 +0 -0
  73. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/8/c/5/4/2/8c54213ac80b2536d9dbc88d24229468300e07d0d4883935e180e4d8 +0 -0
  74. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/9/f/9/3/7/9f937e100a133ace0f86a717e0ada066b9e9d82f4d2982affb4e0344 +0 -0
  75. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/b/b/a/d/c/bbadc07fc383ff650474f2a8246a59ba64776ab6b35809d02400a398 +0 -0
  76. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/c/6/3/0/6/c6306d205b48faecb62eb823053e850df036f38e59b11523829f5c31 +0 -0
  77. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/c/d/2/3/6/cd2366d413a2e8e87377cfadece7d8173562ece48b2be25218d5714a +0 -0
  78. opencode_semantic_memory-0.8.2/.cache/pip/http-v2/d/c/b/6/1/dcb61fa48ca00e206822fed148e38d1d4494a0b43064c07dcadec607 +0 -0
  79. opencode_semantic_memory-0.8.2/scripts/memory-mcp.sh +0 -37
  80. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/0/d/f/d/00dfda658f2fcde6926308004100798ad2247e2f45d1313ebfef973d.body +0 -0
  81. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/2/1/0/5/02105206f60ee8a62c7d923e21bb4bd2d8f3db94c5bb87bd806d5e74 +0 -0
  82. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/2/1/0/5/02105206f60ee8a62c7d923e21bb4bd2d8f3db94c5bb87bd806d5e74.body +0 -0
  83. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/4/3/c/5/043c5436ab58fe00f4947e073da46878751ec535f5fb37ee31d056d4 +0 -0
  84. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/4/3/c/5/043c5436ab58fe00f4947e073da46878751ec535f5fb37ee31d056d4.body +0 -0
  85. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/6/e/f/6/06ef6c69cac06b70bc0c72267a631e29bc34b67d12daa0467e642f68 +0 -0
  86. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/6/e/f/6/06ef6c69cac06b70bc0c72267a631e29bc34b67d12daa0467e642f68.body +0 -0
  87. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/a/6/b/7/0a6b76df38e61ac4e1f757a1132d2c6424dcb9c23751423afee448ac +0 -0
  88. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/a/6/b/7/0a6b76df38e61ac4e1f757a1132d2c6424dcb9c23751423afee448ac.body +0 -0
  89. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/d/0/c/8/0d0c8773df337e6f9e71ac49b74b6022225cab83efe9780dbf45afd6 +0 -0
  90. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/d/0/c/8/0d0c8773df337e6f9e71ac49b74b6022225cab83efe9780dbf45afd6.body +0 -0
  91. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/e/0/5/5/0e055813e840b7b873253f9f5c1cd4a7b06e0256c8de713dec25b93d +0 -0
  92. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/e/0/5/5/0e055813e840b7b873253f9f5c1cd4a7b06e0256c8de713dec25b93d.body +0 -0
  93. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/e/d/3/3/0ed336d749e009fe1267c844e36c442e5b3dc645d5eb9865c545b81a +0 -0
  94. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/e/d/3/3/0ed336d749e009fe1267c844e36c442e5b3dc645d5eb9865c545b81a.body +0 -0
  95. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/0/b/2/a/10b2a8b62ea67a4cd49d0d353a09c43832fb02ba7b3a804e29c73417 +0 -0
  96. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/0/b/2/a/10b2a8b62ea67a4cd49d0d353a09c43832fb02ba7b3a804e29c73417.body +0 -0
  97. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/1/4/a/4/114a432b2bd8b6284c600aa9e3f2bd6b180cacf11a94027a1a3ebafd +0 -0
  98. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/1/4/a/4/114a432b2bd8b6284c600aa9e3f2bd6b180cacf11a94027a1a3ebafd.body +0 -0
  99. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/1/5/8/4/11584f31ec41215071940705e8c92c248476c2eb9f8321e581bc327d +0 -0
  100. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/1/5/8/4/11584f31ec41215071940705e8c92c248476c2eb9f8321e581bc327d.body +0 -0
  101. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/2/1/8/1/121816d8cda4aebb8eef187064632e8ae9502de5f2c95b48f84a7404 +0 -0
  102. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/2/1/8/1/121816d8cda4aebb8eef187064632e8ae9502de5f2c95b48f84a7404.body +0 -0
  103. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/5/9/c/5/159c56e4ec3c8e71dacef647c600365ad192876d095dd29b5b5c8ace +0 -0
  104. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/5/9/c/5/159c56e4ec3c8e71dacef647c600365ad192876d095dd29b5b5c8ace.body +0 -0
  105. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/7/1/4/7/1714748212f1de43b155667695179ce5864620d5dacb8cf4aed74142 +0 -0
  106. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/7/1/4/7/1714748212f1de43b155667695179ce5864620d5dacb8cf4aed74142.body +0 -0
  107. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/a/a/9/3/1aa93177f63584761c951c731336f631596e12d3b4e0b67c5c164470.body +0 -0
  108. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/c/8/1/b/1c81b93817f31aa9418642808feaab487be448dbe0773e4bd01b9229 +0 -0
  109. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/c/8/1/b/1c81b93817f31aa9418642808feaab487be448dbe0773e4bd01b9229.body +0 -0
  110. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/c/c/f/2/1ccf222879210db389c3a9cad286511f6d242e8f0f9678f4322d324c +0 -0
  111. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/c/c/f/2/1ccf222879210db389c3a9cad286511f6d242e8f0f9678f4322d324c.body +0 -0
  112. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/e/d/5/5/1ed556defd2a8ab2cc731547ac075b6d45780b497beca6fbad1e4b42 +0 -0
  113. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/e/d/5/5/1ed556defd2a8ab2cc731547ac075b6d45780b497beca6fbad1e4b42.body +0 -0
  114. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/f/d/9/a/1fd9ade2b751542e96db097082f121ecac23098b3cd95c8a877f0716.body +0 -0
  115. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/4/d/b/9/24db9366753b8559a96fe294a29ebf32f13c5cff54739e41b20a46e8 +0 -0
  116. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/4/d/b/9/24db9366753b8559a96fe294a29ebf32f13c5cff54739e41b20a46e8.body +0 -0
  117. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/6/e/b/e/26ebeea7399d8249c69cb68cb12dd2c21339342ab0b9493ab076d6e8 +0 -0
  118. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/6/e/b/e/26ebeea7399d8249c69cb68cb12dd2c21339342ab0b9493ab076d6e8.body +0 -0
  119. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/8/3/9/a/2839a1e60014c8f0cdf9453a6036b2fef7bf06342761e3d37258b029 +0 -0
  120. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/8/3/9/a/2839a1e60014c8f0cdf9453a6036b2fef7bf06342761e3d37258b029.body +0 -0
  121. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/8/9/c/6/289c6f7419360f0297e671f8a8d5f9af72c5243124e001a3663cac72 +0 -0
  122. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/8/9/c/6/289c6f7419360f0297e671f8a8d5f9af72c5243124e001a3663cac72.body +0 -0
  123. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/a/8/c/5/2a8c5a56aa7e75a42e474464b0e75e78380050445086fa2e6626b678.body +0 -0
  124. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/0/a/4/2b0a4fda1a2c912a5a1c5245a8b34b5da87876e311f607befabc98ee +0 -0
  125. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/0/a/4/2b0a4fda1a2c912a5a1c5245a8b34b5da87876e311f607befabc98ee.body +0 -0
  126. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/4/a/8/2b4a8461b0c542cab777b0b365023942af997bbb25607ac8b3782391 +0 -0
  127. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/4/a/8/2b4a8461b0c542cab777b0b365023942af997bbb25607ac8b3782391.body +0 -0
  128. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/a/1/c/2ba1cd6fadf1cd59b11c7feb8b68f1b786ade023c8f2ebe0f752e45e +0 -0
  129. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/a/1/c/2ba1cd6fadf1cd59b11c7feb8b68f1b786ade023c8f2ebe0f752e45e.body +0 -0
  130. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/e/5/b/6/2e5b6ced06806dcc8a76919087cfc0d76c4240a8acb8d34511ad15d6.body +0 -0
  131. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/e/b/6/a/2eb6afae3ceaa5367896f67f058455efab497b680ac114e94caa3e10 +0 -0
  132. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/e/b/6/a/2eb6afae3ceaa5367896f67f058455efab497b680ac114e94caa3e10.body +0 -0
  133. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/e/e/f/c/2eefc290e650f410245e06439d9986a9e086c5e8b61f232f1e12891f +0 -0
  134. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/e/e/f/c/2eefc290e650f410245e06439d9986a9e086c5e8b61f232f1e12891f.body +0 -0
  135. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/2/7/f/0/327f0380de23010729d12b6a8a48f24b952353d527064c8bf3cfd875.body +0 -0
  136. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/3/5/e/4/335e4fae780121b49f966edba3e2b1f1f00b06637723db2e7e731f26 +0 -0
  137. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/3/5/e/4/335e4fae780121b49f966edba3e2b1f1f00b06637723db2e7e731f26.body +0 -0
  138. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/3/9/7/4/33974f84394d9a943f68359da08431dab4af9f86c33962982ea21b5f.body +0 -0
  139. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/4/f/3/5/34f35e68224a7918339af3f1e6f6dfcfd5192fd17c6ebb73cd6dd91a +0 -0
  140. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/4/f/3/5/34f35e68224a7918339af3f1e6f6dfcfd5192fd17c6ebb73cd6dd91a.body +0 -0
  141. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/6/1/b/f/361bf053ab706a1212f013301d35a0c4b0af9cd8cc559d24c73d6a6f.body +0 -0
  142. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/6/7/8/5/36785bb40858912d7449d47de604d597609db89b1962e5e1e238542b +0 -0
  143. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/6/7/8/5/36785bb40858912d7449d47de604d597609db89b1962e5e1e238542b.body +0 -0
  144. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/6/a/5/d/36a5d6132567ff173f730ddcc6ab65962d399aaa9f302927ca97b3eb +0 -0
  145. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/6/a/5/d/36a5d6132567ff173f730ddcc6ab65962d399aaa9f302927ca97b3eb.body +0 -0
  146. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/8/4/d/c/384dc122488f965cecab29f1722d1db789313763e22373f38c7fbbef.body +0 -0
  147. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/9/8/1/3/398134aaeacada9feb8b12654a25e878c4f41490786622fc606a7a1c +0 -0
  148. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/9/8/1/3/398134aaeacada9feb8b12654a25e878c4f41490786622fc606a7a1c.body +0 -0
  149. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/f/e/c/3/3fec34894257a80934e9246a0a3053a6a96740587f3ddbf5b4fa6f02 +0 -0
  150. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/f/e/c/3/3fec34894257a80934e9246a0a3053a6a96740587f3ddbf5b4fa6f02.body +0 -0
  151. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/1/e/3/c/41e3c68bb5038e20a3418971e070f9076b9eaa6e2c345d3e7f55e6b3 +0 -0
  152. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/1/e/3/c/41e3c68bb5038e20a3418971e070f9076b9eaa6e2c345d3e7f55e6b3.body +0 -0
  153. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/3/6/8/4/436846b847c9c90a13539a872e2084e3f9ca23eb93b4b1cc44b55964 +0 -0
  154. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/3/6/8/4/436846b847c9c90a13539a872e2084e3f9ca23eb93b4b1cc44b55964.body +0 -0
  155. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/3/9/4/0/43940c1ffa291a23244e10de06849b33fae6638badc063f4ade3cc1a +0 -0
  156. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/3/9/4/0/43940c1ffa291a23244e10de06849b33fae6638badc063f4ade3cc1a.body +0 -0
  157. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/4/e/5/b/44e5b11a6caa92636d8ccfe658d420ba4ed8f67f7f4e835b214255aa.body +0 -0
  158. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/5/8/c/7/458c7a7721c5d95619ebccea457715f5b1720258d02ce8362016a55c +0 -0
  159. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/5/8/c/7/458c7a7721c5d95619ebccea457715f5b1720258d02ce8362016a55c.body +0 -0
  160. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/7/7/4/2/47742615f5189ebbf61bb31c8c50f7f39cc38c5173f10ec7146e3989 +0 -0
  161. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/7/7/4/2/47742615f5189ebbf61bb31c8c50f7f39cc38c5173f10ec7146e3989.body +0 -0
  162. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/8/3/8/e/4838e51432c6c88a78b5234e817caf0cf3bf1c3fc933f4861329b80f +0 -0
  163. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/8/3/8/e/4838e51432c6c88a78b5234e817caf0cf3bf1c3fc933f4861329b80f.body +0 -0
  164. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/b/e/0/7/4be07d3ac353e38d2c9e3a257cad36ee2a758fc88b4cd5f0d479a5a9.body +0 -0
  165. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/c/7/5/1/4c751248c578c4b8d67722e607a019d0909438b8cbe82066c393dfde +0 -0
  166. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/c/7/5/1/4c751248c578c4b8d67722e607a019d0909438b8cbe82066c393dfde.body +0 -0
  167. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/e/7/a/c/4e7ac19406cd6f20bb5f8145cca2f74c5f704ef378b0f4334628b440 +0 -0
  168. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/e/7/a/c/4e7ac19406cd6f20bb5f8145cca2f74c5f704ef378b0f4334628b440.body +0 -0
  169. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/5/9/a/2/559a28d2d50a6d0988e3c56e5d0d411789da84005e4420f1a26bb23e +0 -0
  170. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/5/9/a/2/559a28d2d50a6d0988e3c56e5d0d411789da84005e4420f1a26bb23e.body +0 -0
  171. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/8/f/2/8/58f285f2173a5d23a2aa46ffc8e8b1bc64b6c3da91902d4ebd85c64d +0 -0
  172. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/8/f/2/8/58f285f2173a5d23a2aa46ffc8e8b1bc64b6c3da91902d4ebd85c64d.body +0 -0
  173. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/b/5/7/6/5b576ddc69cb2cda42f61333b85f066e4990a5eab5c96e0670cbb445.body +0 -0
  174. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/b/d/8/9/5bd894eeb3dfe1c8aaee1daecdfb74bbb314293813a730238621f077.body +0 -0
  175. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/b/e/1/1/5be1135dcb7a68de4427c71119ff80f66b671ae16db019966320bd6b.body +0 -0
  176. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/d/5/7/5/5d575692ffb3194739604e9e1622e2fa8c882afc9517932bd2ce40df +0 -0
  177. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/d/5/7/5/5d575692ffb3194739604e9e1622e2fa8c882afc9517932bd2ce40df.body +0 -0
  178. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/2/e/2/c/62e2caaadb9fd2d0a88b65a7d2043b2c343936491ef44dc753aa91e0.body +0 -0
  179. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/c/3/7/f/6c37fbfdf697cce77ac3a3add5b61c639e47de9b9b9d1eb63cf429d5.body +0 -0
  180. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/e/b/6/c/6eb6c130f2e60d2739ddb376352e395a8d86e4f80b402f5f7854d07d.body +0 -0
  181. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/e/f/c/7/6efc76a8ab292a15bc9bca02c950f72e1ce263d0a701323e9af5a358 +0 -0
  182. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/e/f/c/7/6efc76a8ab292a15bc9bca02c950f72e1ce263d0a701323e9af5a358.body +0 -0
  183. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/0/b/9/c/70b9c022893d41f3d2b5cd47c3935b21f2c02945201dbf0acd4f302c +0 -0
  184. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/0/b/9/c/70b9c022893d41f3d2b5cd47c3935b21f2c02945201dbf0acd4f302c.body +0 -0
  185. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/2/f/6/0/72f60d542675f65a9677981499f07ae27fe97e3ac82f8e2224d72113 +0 -0
  186. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/2/f/6/0/72f60d542675f65a9677981499f07ae27fe97e3ac82f8e2224d72113.body +0 -0
  187. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/3/3/0/8/73308e5c1402c6bb3b38e3b0f1deabe3b20b6248ed18126597a2a901 +0 -0
  188. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/3/3/0/8/73308e5c1402c6bb3b38e3b0f1deabe3b20b6248ed18126597a2a901.body +0 -0
  189. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/6/f/a/7/76fa74418db194f57a03dff1a0900e3bb30fca5fcb07e76f411cd937 +0 -0
  190. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/6/f/a/7/76fa74418db194f57a03dff1a0900e3bb30fca5fcb07e76f411cd937.body +0 -0
  191. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/7/4/6/9/77469a77c0c5007f8e0ef36b73b2bdb8cbe7d9c8be102fd7d4efaf35 +0 -0
  192. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/7/4/6/9/77469a77c0c5007f8e0ef36b73b2bdb8cbe7d9c8be102fd7d4efaf35.body +0 -0
  193. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/a/5/f/7/7a5f717e7b3fb99ec006f4d173aad55224eb063005c662c586ba0518.body +0 -0
  194. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/2/6/f/6/826f657d92b77c09dc5003a2b07bdbf9bb82259638dc4579ee230b4d +0 -0
  195. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/2/6/f/6/826f657d92b77c09dc5003a2b07bdbf9bb82259638dc4579ee230b4d.body +0 -0
  196. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/3/a/9/9/83a99ac063795cf6d06df343c06449f8777237c8c3ad06917c4344ef +0 -0
  197. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/3/a/9/9/83a99ac063795cf6d06df343c06449f8777237c8c3ad06917c4344ef.body +0 -0
  198. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/3/d/e/5/83de5cc65dfecf3a6e4c4c0025f0873b77d3c9243e6a038bd0ca39b9 +0 -0
  199. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/3/d/e/5/83de5cc65dfecf3a6e4c4c0025f0873b77d3c9243e6a038bd0ca39b9.body +0 -0
  200. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/6/c/3/3/86c33a8b2bab9735c4478352d670d16d3abe4f1a006f7c8e395d413f +0 -0
  201. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/6/c/3/3/86c33a8b2bab9735c4478352d670d16d3abe4f1a006f7c8e395d413f.body +0 -0
  202. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/8/f/0/6/88f06a944c734c3736badbb02d887cddfeb74de4f837c06db79e749c +0 -0
  203. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/8/f/0/6/88f06a944c734c3736badbb02d887cddfeb74de4f837c06db79e749c.body +0 -0
  204. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/9/6/5/1/896514be855e753c50f0e30b1a0e384a9a68b4db7b2ad62e28f4f6c0 +0 -0
  205. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/9/6/5/1/896514be855e753c50f0e30b1a0e384a9a68b4db7b2ad62e28f4f6c0.body +0 -0
  206. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/9/b/7/2/89b72b053e1e45d15f7f77bd17b706e1b4010f0d87afb98ea49c07e1 +0 -0
  207. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/9/b/7/2/89b72b053e1e45d15f7f77bd17b706e1b4010f0d87afb98ea49c07e1.body +0 -0
  208. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/a/9/8/c/8a98cf67dec8a2d33fd9e0b916651e7664ecf9dac97e99bcebb334f9 +0 -0
  209. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/a/9/8/c/8a98cf67dec8a2d33fd9e0b916651e7664ecf9dac97e99bcebb334f9.body +0 -0
  210. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/b/2/4/2/8b24226e2da88df4abeee0d8ca6bce79b19ca2bcd5f94b543939c66c.body +0 -0
  211. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/c/5/4/2/8c54213ac80b2536d9dbc88d24229468300e07d0d4883935e180e4d8.body +0 -0
  212. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/d/0/e/1/8d0e104919449355aedb55b5b546bb9fd53f0e1a8ca1b082109464e9.body +0 -0
  213. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/f/0/2/c/8f02ceda6b874413150afa5cd29cd5b10e2fcba552cc363083b9d073 +0 -0
  214. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/f/0/2/c/8f02ceda6b874413150afa5cd29cd5b10e2fcba552cc363083b9d073.body +0 -0
  215. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/2/8/c/7/928c755db48c17282ed7a16aa7cbf0ae7aa370d2e20d939a3292aa75 +0 -0
  216. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/2/8/c/7/928c755db48c17282ed7a16aa7cbf0ae7aa370d2e20d939a3292aa75.body +0 -0
  217. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/4/d/0/2/94d022fb6c12e6dc453f3090252f397a80e9c2dbb7341fb45c1b150f +0 -0
  218. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/4/d/0/2/94d022fb6c12e6dc453f3090252f397a80e9c2dbb7341fb45c1b150f.body +0 -0
  219. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/8/8/9/3/98893f0b227721063df57aa66878132bb1592344007b1842b6681340.body +0 -0
  220. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/8/a/a/c/98aaccf247f7044601019ac72b3323db416a60a3b922e914db3b02bc.body +0 -0
  221. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/9/6/4/b/9964b58defdc05f741bfcb3abd6a4eebcb73af9497c5e6d1c828971c +0 -0
  222. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/9/6/4/b/9964b58defdc05f741bfcb3abd6a4eebcb73af9497c5e6d1c828971c.body +0 -0
  223. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/a/a/7/5/9aa7515b527eee59a0b02e85169b5a03e55bdc51dd9ff5255db0c90b +0 -0
  224. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/a/a/7/5/9aa7515b527eee59a0b02e85169b5a03e55bdc51dd9ff5255db0c90b.body +0 -0
  225. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/0/1/f/9d01f27365759b718ef77536f4a3d30fd989884b0e53418e1275a79d +0 -0
  226. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/0/1/f/9d01f27365759b718ef77536f4a3d30fd989884b0e53418e1275a79d.body +0 -0
  227. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/5/d/f/9d5dfb0dedf17094821c37079d37c9f4a1256a7dc457c1192cfa1573 +0 -0
  228. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/5/d/f/9d5dfb0dedf17094821c37079d37c9f4a1256a7dc457c1192cfa1573.body +0 -0
  229. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/7/3/1/9d731f2c786de32b646a4a55c324f4853068bfd6c6f1fd7f9a0e296b +0 -0
  230. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/7/3/1/9d731f2c786de32b646a4a55c324f4853068bfd6c6f1fd7f9a0e296b.body +0 -0
  231. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/e/2/9/3/9e293f5a39d8466e2b362aa21216c5e4bc32898b0a39bfff792d145e.body +0 -0
  232. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/e/d/3/7/9ed377a761861346a483546ee4ebbe92a83f2d3a40e917849c2eb140.body +0 -0
  233. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/f/9/3/7/9f937e100a133ace0f86a717e0ada066b9e9d82f4d2982affb4e0344.body +0 -0
  234. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/1/9/5/3/a19537d3cf37c122db841d6fe4cd322bc10d1a558bb00d146b85cb9a +0 -0
  235. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/1/9/5/3/a19537d3cf37c122db841d6fe4cd322bc10d1a558bb00d146b85cb9a.body +0 -0
  236. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/4/6/b/7/a46b74c1407dd55ebf9eeb7eb2c73000028b7639a6ed9edc7981950c.body +0 -0
  237. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/6/9/f/7/a69f7807d8670d33b4a34f2be06cdd5812c8d0da9ec20e9dea88a6b5 +0 -0
  238. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/6/9/f/7/a69f7807d8670d33b4a34f2be06cdd5812c8d0da9ec20e9dea88a6b5.body +0 -0
  239. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/c/b/4/e/acb4e40f64eef2a73d680e437d7e413b10909b60941ff39f0528cce7 +0 -0
  240. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/c/b/4/e/acb4e40f64eef2a73d680e437d7e413b10909b60941ff39f0528cce7.body +0 -0
  241. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/c/f/5/f/acf5f0d5e5d9c652369524c1aa52bc12c871949618d42c9cf23f3425 +0 -0
  242. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/c/f/5/f/acf5f0d5e5d9c652369524c1aa52bc12c871949618d42c9cf23f3425.body +0 -0
  243. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/d/0/9/9/ad0993b61e45706eeae6cade19b9ea76c815f37701089250e72421e5 +0 -0
  244. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/d/0/9/9/ad0993b61e45706eeae6cade19b9ea76c815f37701089250e72421e5.body +0 -0
  245. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/d/f/d/a/adfdac1a71358ae7b47b92917f8a6af8c5acecccb52b186c45372c03 +0 -0
  246. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/d/f/d/a/adfdac1a71358ae7b47b92917f8a6af8c5acecccb52b186c45372c03.body +0 -0
  247. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/e/4/3/7/ae4373cec48f7725665273a898a1c1c6bb89464ae81e2d57d920fc2e +0 -0
  248. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/e/4/3/7/ae4373cec48f7725665273a898a1c1c6bb89464ae81e2d57d920fc2e.body +0 -0
  249. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/f/9/2/4/af924cace590eaa7f5a948286460f4a79ae9e083cd5843c70be7bcdc +0 -0
  250. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/f/9/2/4/af924cace590eaa7f5a948286460f4a79ae9e083cd5843c70be7bcdc.body +0 -0
  251. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/0/c/3/0/b0c304a2d0d2dd17cd2e818948220da223f52dfe26c6e170a35508ec +0 -0
  252. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/0/c/3/0/b0c304a2d0d2dd17cd2e818948220da223f52dfe26c6e170a35508ec.body +0 -0
  253. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/2/b/3/5/b2b35b24e6fe74c8ffc02d1a4a1ddbd75ba2a82f3623471ee047b2ed +0 -0
  254. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/2/b/3/5/b2b35b24e6fe74c8ffc02d1a4a1ddbd75ba2a82f3623471ee047b2ed.body +0 -0
  255. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/3/6/c/0/b36c03663a3f9be503a38ab3381e55a1c5e2392e9271c976f5e2b956 +0 -0
  256. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/3/6/c/0/b36c03663a3f9be503a38ab3381e55a1c5e2392e9271c976f5e2b956.body +0 -0
  257. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/6/f/4/d/b6f4dcb64ca093b3c3ae363be21ccc40760e60e58f24e7541ab876c7.body +0 -0
  258. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/9/3/9/c/b939c4552b20c2f2a36204f6bb1d2e526af7e96070b43b1d2e2e9ae4 +0 -0
  259. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/9/3/9/c/b939c4552b20c2f2a36204f6bb1d2e526af7e96070b43b1d2e2e9ae4.body +0 -0
  260. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/b/a/d/c/bbadc07fc383ff650474f2a8246a59ba64776ab6b35809d02400a398.body +0 -0
  261. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/c/5/b/a/bc5baf40560ff46e68ca4c99692ddaaf9ca29f999555e36e150ea6f1 +0 -0
  262. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/c/5/b/a/bc5baf40560ff46e68ca4c99692ddaaf9ca29f999555e36e150ea6f1.body +0 -0
  263. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/e/d/4/e/bed4e7c2b407105e5c80f6f3c9c9ce06074cd1bc90409700e4489759 +0 -0
  264. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/e/d/4/e/bed4e7c2b407105e5c80f6f3c9c9ce06074cd1bc90409700e4489759.body +0 -0
  265. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/4/1/9/b/c419b5211317322d2f929c4249b25fb3a2a5deaac5ca898ef2889e82 +0 -0
  266. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/4/1/9/b/c419b5211317322d2f929c4249b25fb3a2a5deaac5ca898ef2889e82.body +0 -0
  267. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/5/5/1/6/c5516052911272854847b94d1c7e5dcdda18d04768795c313b9958bc +0 -0
  268. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/5/5/1/6/c5516052911272854847b94d1c7e5dcdda18d04768795c313b9958bc.body +0 -0
  269. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/6/3/0/6/c6306d205b48faecb62eb823053e850df036f38e59b11523829f5c31.body +0 -0
  270. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/6/e/e/4/c6ee4aaa63f8847bfbe25565d073b6c57d624c7f7c4708994746c09c +0 -0
  271. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/6/e/e/4/c6ee4aaa63f8847bfbe25565d073b6c57d624c7f7c4708994746c09c.body +0 -0
  272. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/7/0/c/6/c70c631b8d2fff6b4f7fd6ebc7fad8e500b50f8fa7da0af627bf1f0b +0 -0
  273. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/7/0/c/6/c70c631b8d2fff6b4f7fd6ebc7fad8e500b50f8fa7da0af627bf1f0b.body +0 -0
  274. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/7/7/1/f/c771f1dbbe2a60b07758757a5e715103105323f69596e50cebedebeb +0 -0
  275. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/7/7/1/f/c771f1dbbe2a60b07758757a5e715103105323f69596e50cebedebeb.body +0 -0
  276. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/9/4/a/e/c94ae1695304888e79191be0f465ad0b2a85880ee474d189ee9126ed +0 -0
  277. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/9/4/a/e/c94ae1695304888e79191be0f465ad0b2a85880ee474d189ee9126ed.body +0 -0
  278. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/d/2/3/6/cd2366d413a2e8e87377cfadece7d8173562ece48b2be25218d5714a.body +0 -0
  279. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/d/e/c/3/cdec3d0140a615c153130a37691576ea1707e32a1ab5e60ae5a540f4 +0 -0
  280. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/d/e/c/3/cdec3d0140a615c153130a37691576ea1707e32a1ab5e60ae5a540f4.body +0 -0
  281. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/e/6/7/6/ce6762d91f1e7c3c4bece64762122d18df14d8f8e7532d5f15dfdb37 +0 -0
  282. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/e/6/7/6/ce6762d91f1e7c3c4bece64762122d18df14d8f8e7532d5f15dfdb37.body +0 -0
  283. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/e/8/f/d/ce8fd146fb2bb37feff63c8f224f1a8b178c26a332d13562e417fead +0 -0
  284. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/e/8/f/d/ce8fd146fb2bb37feff63c8f224f1a8b178c26a332d13562e417fead.body +0 -0
  285. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/f/e/5/3/cfe53db609feaba2efb2139916693c3ff859e7f1e6e6e557fbd82ae0 +0 -0
  286. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/f/e/5/3/cfe53db609feaba2efb2139916693c3ff859e7f1e6e6e557fbd82ae0.body +0 -0
  287. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/0/9/f/6/d09f6ac5e031c49248311012191c6416673b97ee2e299116b629ff88 +0 -0
  288. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/0/9/f/6/d09f6ac5e031c49248311012191c6416673b97ee2e299116b629ff88.body +0 -0
  289. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/3/7/f/1/d37f17c4b7b25f8b5df752972b9c2301f59d0c55586cac7f15268689 +0 -0
  290. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/3/7/f/1/d37f17c4b7b25f8b5df752972b9c2301f59d0c55586cac7f15268689.body +0 -0
  291. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/5/4/b/b/d54bb21df9a8549867c7c0c30dcdda927be8994b07f4c933db9a04ab +0 -0
  292. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/5/4/b/b/d54bb21df9a8549867c7c0c30dcdda927be8994b07f4c933db9a04ab.body +0 -0
  293. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/5/9/0/b/d590bdf80aa5f6230e0e49a9f10b63aa0c44f77ccd99f25a6ad7841a +0 -0
  294. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/5/9/0/b/d590bdf80aa5f6230e0e49a9f10b63aa0c44f77ccd99f25a6ad7841a.body +0 -0
  295. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/6/b/d/f/d6bdf32d1c16362f083791f397046d0fa2aa6875fb754c605afbef26 +0 -0
  296. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/6/b/d/f/d6bdf32d1c16362f083791f397046d0fa2aa6875fb754c605afbef26.body +0 -0
  297. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/8/f/6/6/d8f6658f33493176286485c04b4350d8cca524052cba0aea8d4cb82e +0 -0
  298. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/8/f/6/6/d8f6658f33493176286485c04b4350d8cca524052cba0aea8d4cb82e.body +0 -0
  299. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/a/4/3/1/da431bf4bec8d6d3c8eda94dac7a309e829b61d10ffd31c5d846f4d5 +0 -0
  300. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/a/4/3/1/da431bf4bec8d6d3c8eda94dac7a309e829b61d10ffd31c5d846f4d5.body +0 -0
  301. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/c/b/6/1/dcb61fa48ca00e206822fed148e38d1d4494a0b43064c07dcadec607.body +0 -0
  302. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/f/1/1/f/df11f101ff0165c7df447aaf1ab175fcd1af98711e498eef0c3d0dfa +0 -0
  303. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/f/1/1/f/df11f101ff0165c7df447aaf1ab175fcd1af98711e498eef0c3d0dfa.body +0 -0
  304. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/1/2/c/b/e12cb67639406869a81116005289318bf75720fc4d58ce1eff838d0c +0 -0
  305. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/1/2/c/b/e12cb67639406869a81116005289318bf75720fc4d58ce1eff838d0c.body +0 -0
  306. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/1/6/2/5/e16255f8dfb39b0298f7cb7edd062dd0d3f7ae4c5014de5fc4e17070 +0 -0
  307. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/1/6/2/5/e16255f8dfb39b0298f7cb7edd062dd0d3f7ae4c5014de5fc4e17070.body +0 -0
  308. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/a/c/6/1/eac61126daf80149d2a016f12a54eab5e3b5c1dbc77410ff1a97edc4.body +0 -0
  309. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/d/2/5/d/ed25d1bb38edf83d84e0a08c7e2111da8cb788eddb019df7a96d3213.body +0 -0
  310. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/d/3/a/c/ed3acad79bebd48e93f9254a4702825f833ffd8119c8d2cbff43abfc +0 -0
  311. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/d/3/a/c/ed3acad79bebd48e93f9254a4702825f833ffd8119c8d2cbff43abfc.body +0 -0
  312. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/2/d/a/b/f2dabcdf97e445f98036aadbe7dddc4c9ecb47a8a60783427f548b2c +0 -0
  313. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/2/d/a/b/f2dabcdf97e445f98036aadbe7dddc4c9ecb47a8a60783427f548b2c.body +0 -0
  314. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/3/0/6/9/f3069b463c09d30c7cc1996d8b8a3423c70ff01f7a9e7a62d31aca05 +0 -0
  315. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/3/0/6/9/f3069b463c09d30c7cc1996d8b8a3423c70ff01f7a9e7a62d31aca05.body +0 -0
  316. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/3/6/d/5/f36d58c71164036f2cff3c9d0bb0c2b4d1d94bd0814c26b9cbe036b2.body +0 -0
  317. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/9/6/5/9/f9659e50df363f8369e6abe4c4008418f9de6a660e264dbba624109f.body +0 -0
  318. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/9/9/b/3/f99b3487d2b9c55edcd311aeafa35cbf852ab2cc5c3f5d1a1a08e2b5 +0 -0
  319. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/9/9/b/3/f99b3487d2b9c55edcd311aeafa35cbf852ab2cc5c3f5d1a1a08e2b5.body +0 -0
  320. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/c/c/6/f/fcc6fbc30e8c9f7e5cfd4f86edead21005705c18238a90d9673eeb47 +0 -0
  321. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/c/c/6/f/fcc6fbc30e8c9f7e5cfd4f86edead21005705c18238a90d9673eeb47.body +0 -0
  322. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/d/b/e/3/fdbe380932457c2da0b68a223546fd0f6b84c31a8f4a6b63757becce +0 -0
  323. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/d/b/e/3/fdbe380932457c2da0b68a223546fd0f6b84c31a8f4a6b63757becce.body +0 -0
  324. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/f/6/3/f/ff63f8aee48f79bb6d2cdeff8f7863b5820a3c507a2623f007846bb0 +0 -0
  325. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/f/6/3/f/ff63f8aee48f79bb6d2cdeff8f7863b5820a3c507a2623f007846bb0.body +0 -0
  326. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/selfcheck/fe300af6f7d708c14827daac3afc81fbb8306b73de8dd6e3f1f8ea3b +0 -0
  327. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.gitignore +0 -0
  328. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.gitlab-ci.yml +0 -0
  329. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/AGENTS.md +0 -0
  330. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/ARCHITECTURE.md +0 -0
  331. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/BOOTSTRAP.md +0 -0
  332. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/README.md +0 -0
  333. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/backfill.log +0 -0
  334. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/com.opencode.memory.plist +0 -0
  335. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/docs/BOOTSTRAP_MEMORIES.md +0 -0
  336. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/docs/GITLAB_WORKFLOW_MEMORIES.md +0 -0
  337. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/docs/TIPS_FOR_HUMANS.md +0 -0
  338. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/flake.lock +0 -0
  339. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/flake.nix +0 -0
  340. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/lefthook.yml +0 -0
  341. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/nix/model.nix +0 -0
  342. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/nix/module.nix +0 -0
  343. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/nix/package.nix +0 -0
  344. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode-mcp-config.json +0 -0
  345. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode-memory-daemon.service +0 -0
  346. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode-memory-reload.path +0 -0
  347. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode-memory-worker.service +0 -0
  348. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode-memory.service +0 -0
  349. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode.json +0 -0
  350. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/.gitignore +0 -0
  351. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/README.md +0 -0
  352. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/package-lock.json +0 -0
  353. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/package.json +0 -0
  354. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/src/boot-context-formatter.ts +0 -0
  355. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/src/context-formatter.ts +0 -0
  356. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/src/entity-extractor.ts +0 -0
  357. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/src/index.ts +0 -0
  358. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/src/memory-client.ts +0 -0
  359. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/tsconfig.json +0 -0
  360. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/scripts/backfill_extraction.py +0 -0
  361. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/scripts/check-version-sync.py +0 -0
  362. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/scripts/reingest_insights.py +0 -0
  363. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/scripts/setup.sh +0 -0
  364. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/scripts/sync-version.py +0 -0
  365. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/slack-post-memory-effectiveness.md +0 -0
  366. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/__init__.py +0 -0
  367. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/activity_log.py +0 -0
  368. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/analysis/__init__.py +0 -0
  369. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/analysis/effectiveness.py +0 -0
  370. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/backfill_introspection.py +0 -0
  371. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/__init__.py +0 -0
  372. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/cli.py +0 -0
  373. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/daemon.py +0 -0
  374. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/fetcher.py +0 -0
  375. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/query.py +0 -0
  376. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/storage.py +0 -0
  377. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/summarizer.py +0 -0
  378. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/tiering.py +0 -0
  379. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/vectors.py +0 -0
  380. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/cache.py +0 -0
  381. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/cli.py +0 -0
  382. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/config.py +0 -0
  383. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/daemon.py +0 -0
  384. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/enrichment/__init__.py +0 -0
  385. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/enrichment/gitlab.py +0 -0
  386. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/enrichment/orbit.py +0 -0
  387. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/enrichment_worker.py +0 -0
  388. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/extraction.py +0 -0
  389. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/historical_ingest.py +0 -0
  390. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/indexing/__init__.py +0 -0
  391. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/indexing/code_structure.py +0 -0
  392. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/__init__.py +0 -0
  393. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/embeddings.py +0 -0
  394. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/extractors.py +0 -0
  395. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/opencode_db.py +0 -0
  396. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/parser.py +0 -0
  397. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/watcher.py +0 -0
  398. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/linking/__init__.py +0 -0
  399. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/linking/linker.py +0 -0
  400. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/llm.py +0 -0
  401. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/metrics.py +0 -0
  402. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/proactive_context.py +0 -0
  403. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/project.py +0 -0
  404. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/query/__init__.py +0 -0
  405. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/query/hybrid.py +0 -0
  406. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/session/__init__.py +0 -0
  407. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/session/registry.py +0 -0
  408. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/spider/__init__.py +0 -0
  409. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/spider/crawler.py +0 -0
  410. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/spider/references.py +0 -0
  411. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/storage/__init__.py +0 -0
  412. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/storage/vectors.py +0 -0
  413. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/__init__.py +0 -0
  414. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_cache.py +0 -0
  415. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_concept_propagation.py +0 -0
  416. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_config.py +0 -0
  417. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_daemon.py +0 -0
  418. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_extraction.py +0 -0
  419. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_extractors.py +0 -0
  420. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_linking.py +0 -0
  421. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_llm.py +0 -0
  422. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_opencode_db.py +0 -0
  423. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_orbit.py +0 -0
  424. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_parser.py +0 -0
  425. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_proactive_context.py +0 -0
  426. {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/uv.lock +0 -0
@@ -7,6 +7,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.8.4] - 2026-06-03
11
+
12
+ ### Added
13
+
14
+ - **`get_by_id` tool** - Retrieve a single memory by its ID, returning the full record
15
+ (content, category, what/why/learned, project, entities, timestamps) plus a link summary.
16
+ Lets static procedures and directives be fetched directly instead of via search, which is
17
+ unreliable for exact retrieval. Closes #83.
18
+
19
+ ### Fixed
20
+
21
+ - **Recall relevance** - Bulk-ingested GitLab entities could drown out genuinely relevant
22
+ procedures and directives. The keyword-overlap boost was unbounded
23
+ (`overlap_count * 0.1`), so a verbose issue/MR sharing many keywords could add an
24
+ arbitrarily large score. The boost is now capped at `0.2`, and the bulk-ingest
25
+ `relevance_weight` default is lowered `0.8` -> `0.6` to discount bulk results further
26
+ versus personal memories.
27
+
28
+ ## [0.8.3] - 2026-06-03
29
+
30
+ ### Fixed
31
+
32
+ - **Concurrent subagent MCP connections** - Background tasks that spawned multiple
33
+ subagents at once could fail silently with `MCP error -32000: Connection closed`
34
+ when their `mcp-remote` clients all performed their startup handshake against the
35
+ shared HTTP server simultaneously. Two fixes:
36
+ - `scripts/memory-mcp.sh` now retries `mcp-remote` with exponential backoff
37
+ (up to 5 attempts) so a transient startup-time connection drop recovers instead
38
+ of leaving the subagent without memory access.
39
+ - The HTTP server's rate limiter now exempts loopback addresses (all local
40
+ sessions are trusted) and keys non-local clients by the `X-OpenCode-Session`
41
+ header, so concurrent sessions no longer share a single localhost bucket whose
42
+ limit a startup burst could trip.
43
+
10
44
  ## [0.8.0] - 2026-06-02
11
45
 
12
46
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opencode-semantic-memory
3
- Version: 0.8.2
3
+ Version: 0.8.4
4
4
  Summary: Persistent semantic memory system for OpenCode sessions
5
5
  Author-email: Gregory Havenga <ghavenga@gitlab.com>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "opencode-semantic-memory"
7
- version = "0.8.2"
7
+ version = "0.8.4"
8
8
  description = "Persistent semantic memory system for OpenCode sessions"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -52,6 +52,8 @@ opencode-memory = "opencode_memory.cli:main"
52
52
  opencode-memory-server = "opencode_memory.http_server:main"
53
53
  opencode-memory-daemon = "opencode_memory.daemon:main"
54
54
  opencode-memory-worker = "opencode_memory.background_worker:main"
55
+ # New job-based worker (Sidekiq-like)
56
+ opencode-memory-job-worker = "opencode_memory.jobs.worker:main"
55
57
  # Bulk ingestion commands
56
58
  opencode-memory-bulk-ingest = "opencode_memory.bulk_ingest.cli:main"
57
59
  opencode-memory-bulk-ingest-daemon = "opencode_memory.bulk_ingest.daemon:main"
@@ -0,0 +1,65 @@
1
+ #!/bin/bash
2
+ # Wrapper script for opencode-memory MCP server
3
+ # Connects to the HTTP server via mcp-remote
4
+ #
5
+ # Prerequisites:
6
+ # Linux: systemctl --user enable --now opencode-memory
7
+ # macOS: launchctl load ~/Library/LaunchAgents/com.opencode.memory.plist
8
+
9
+ set -e
10
+
11
+ SERVER_URL="http://localhost:9824"
12
+
13
+ # Quick health check (fail fast if server not running)
14
+ if ! curl -s --max-time 1 "$SERVER_URL/health" >/dev/null 2>&1; then
15
+ OS="$(uname -s)"
16
+ case "$OS" in
17
+ Linux*)
18
+ echo "Memory server not running. Start it with: systemctl --user start opencode-memory" >&2
19
+ ;;
20
+ Darwin*)
21
+ echo "Memory server not running. Start it with: launchctl load ~/Library/LaunchAgents/com.opencode.memory.plist" >&2
22
+ ;;
23
+ *)
24
+ echo "Memory server not running at $SERVER_URL" >&2
25
+ ;;
26
+ esac
27
+ exit 1
28
+ fi
29
+
30
+ # Resolve the mcp-remote command (locally installed is faster than npx)
31
+ if [ -x "$HOME/.local/bin/mcp-remote" ]; then
32
+ MCP_REMOTE=("$HOME/.local/bin/mcp-remote")
33
+ elif command -v mcp-remote >/dev/null 2>&1; then
34
+ MCP_REMOTE=(mcp-remote)
35
+ else
36
+ MCP_REMOTE=(npx --yes mcp-remote)
37
+ fi
38
+
39
+ # Start mcp-remote with retry/backoff to absorb transient "Connection closed"
40
+ # failures that occur when many subagents start concurrently (thundering herd
41
+ # against the shared HTTP server). A clean long-running proxy never returns 0
42
+ # here, so a fast non-zero exit means a startup-time connection drop worth retrying.
43
+ MAX_ATTEMPTS=5
44
+ attempt=1
45
+ while true; do
46
+ start_ts=$(date +%s)
47
+ # Disable errexit around the proxy call; we handle its exit code explicitly.
48
+ set +e
49
+ "${MCP_REMOTE[@]}" "$SERVER_URL/mcp"
50
+ exit_code=$?
51
+ set -e
52
+ elapsed=$(( $(date +%s) - start_ts ))
53
+
54
+ # Exited cleanly, or ran long enough to be a real session (not a startup
55
+ # collision): propagate the exit code and stop.
56
+ if [ "$exit_code" -eq 0 ] || [ "$elapsed" -ge 10 ] || [ "$attempt" -ge "$MAX_ATTEMPTS" ]; then
57
+ exit "$exit_code"
58
+ fi
59
+
60
+ # Transient startup failure: back off (2s, 4s, 6s, 8s) and retry.
61
+ backoff=$(( attempt * 2 ))
62
+ echo "memory-mcp: mcp-remote exited ($exit_code) after ${elapsed}s on attempt ${attempt}; retrying in ${backoff}s" >&2
63
+ sleep "$backoff"
64
+ attempt=$(( attempt + 1 ))
65
+ done
@@ -1,5 +1,17 @@
1
1
  """Unified background worker for all memory processing.
2
2
 
3
+ DEPRECATED: This module is superseded by the new job-based system in
4
+ opencode_memory.jobs.worker. The new system provides:
5
+ - Proper job queue with claim/timeout/retry
6
+ - Circuit breaker protection for external APIs
7
+ - Dead job tracking and alerting
8
+ - Metrics collection for all job types
9
+
10
+ Use instead: python -m opencode_memory.jobs.worker
11
+
12
+ This file is kept for backwards compatibility and will be removed in v0.10.0.
13
+
14
+ Legacy documentation:
3
15
  This runs as a separate process from the MCP server, handling:
4
16
  - Embedding computation and vector storage
5
17
  - Semantic deduplication
@@ -8,8 +20,6 @@ This runs as a separate process from the MCP server, handling:
8
20
  - Memory cleanup
9
21
  - LLM-based knowledge extraction
10
22
  - Concept extraction
11
-
12
- Run with: python -m opencode_memory.background_worker
13
23
  """
14
24
 
15
25
  import asyncio
@@ -979,6 +989,20 @@ Your response (one line only):"""
979
989
 
980
990
  def main():
981
991
  """Entry point for the background worker."""
992
+ import warnings
993
+
994
+ warnings.warn(
995
+ "background_worker is deprecated and will be removed in v0.10.0. "
996
+ "Use 'python -m opencode_memory.jobs.worker' or the 'opencode-memory-job-worker' "
997
+ "command instead. The new system provides job queuing, retries, and metrics.",
998
+ DeprecationWarning,
999
+ stacklevel=2,
1000
+ )
1001
+ logger.warning(
1002
+ "DEPRECATION: background_worker is deprecated. "
1003
+ "Use 'opencode-memory-job-worker' instead for the new job-based system."
1004
+ )
1005
+
982
1006
  worker = BackgroundWorker()
983
1007
 
984
1008
  def handle_signal(signum, frame):
@@ -47,7 +47,10 @@ class QueryConfig(BaseModel):
47
47
  """Query integration configuration."""
48
48
 
49
49
  enabled: bool = True # Include in memory_recall searches
50
- relevance_weight: float = 0.8 # Discount vs personal memories
50
+ # Discount bulk-ingested GitLab entities vs personal memories. Kept well
51
+ # below 1.0 so that procedures, directives, and decisions are not drowned
52
+ # out by weakly-matching bulk issues/MRs in recall results.
53
+ relevance_weight: float = 0.6
51
54
 
52
55
 
53
56
  class BulkIngestConfig(BaseModel):
@@ -274,6 +274,14 @@ def compute_keyword_overlap(keywords1: list[str], keywords2: list[str]) -> int:
274
274
  return len(set(keywords1) & set(keywords2))
275
275
 
276
276
 
277
+ # Maximum additive keyword-overlap boost. Without a cap the boost is
278
+ # unbounded (overlap_count * boost_factor), so a verbose bulk-ingested GitLab
279
+ # entity sharing many keywords with the query could outscore a genuinely
280
+ # relevant personal procedure/directive. Cap it so the boost only nudges
281
+ # ranking rather than dominating it.
282
+ MAX_KEYWORD_BOOST = 0.2
283
+
284
+
277
285
  def keyword_boost(query_keywords: list[str], entity_keywords: list[str], boost_factor: float = 0.1) -> float:
278
286
  """Calculate keyword overlap boost for search scoring.
279
287
 
@@ -283,7 +291,7 @@ def keyword_boost(query_keywords: list[str], entity_keywords: list[str], boost_f
283
291
  boost_factor: Multiplier per overlapping keyword
284
292
 
285
293
  Returns:
286
- Boost value to add to search score
294
+ Boost value to add to search score, capped at MAX_KEYWORD_BOOST.
287
295
  """
288
296
  overlap = compute_keyword_overlap(query_keywords, entity_keywords)
289
- return overlap * boost_factor
297
+ return min(overlap * boost_factor, MAX_KEYWORD_BOOST)
@@ -60,6 +60,10 @@ DEFAULT_PORT = int(os.environ.get("OPENCODE_MEMORY_PORT", "9824"))
60
60
  API_KEY = os.environ.get("OPENCODE_MEMORY_API_KEY") # Optional auth
61
61
  RATE_LIMIT = int(os.environ.get("OPENCODE_MEMORY_RATE_LIMIT", "60")) # per minute
62
62
 
63
+ # Loopback addresses are exempt from rate limiting: all local opencode sessions
64
+ # and their subagents connect over loopback and are trusted.
65
+ _LOCAL_IPS = frozenset({"127.0.0.1", "::1", "localhost"})
66
+
63
67
 
64
68
  class RateLimiter:
65
69
  """Simple in-memory rate limiter using sliding window."""
@@ -69,20 +73,38 @@ class RateLimiter:
69
73
  self.window_seconds = 60
70
74
  self._requests: dict[str, list[float]] = defaultdict(list)
71
75
 
72
- def _get_client_id(self, scope: dict) -> str:
73
- """Get client identifier from request."""
74
- # Use X-Forwarded-For if behind proxy, otherwise use client IP
76
+ def _get_client_ip(self, scope: dict) -> str:
77
+ """Get the originating IP for a request."""
75
78
  headers = dict(scope.get("headers", []))
76
79
  forwarded = headers.get(b"x-forwarded-for", b"").decode()
77
80
  if forwarded:
78
- client_ip = forwarded.split(",")[0].strip()
79
- else:
80
- client = scope.get("client", ("unknown", 0))
81
- client_ip = client[0] if client else "unknown"
82
- return client_ip
81
+ return forwarded.split(",")[0].strip()
82
+ client = scope.get("client", ("unknown", 0))
83
+ return client[0] if client else "unknown"
84
+
85
+ def _get_client_id(self, scope: dict) -> str:
86
+ """Get client identifier for rate limiting.
87
+
88
+ Prefers the opencode session header so that multiple concurrent
89
+ sessions/subagents on the same host get independent rate-limit
90
+ buckets rather than all sharing a single localhost IP bucket
91
+ (which caused startup bursts to trip the limit and drop the
92
+ mcp-remote connection). Falls back to client IP.
93
+ """
94
+ headers = dict(scope.get("headers", []))
95
+ session_id = headers.get(b"x-opencode-session", b"").decode()
96
+ if session_id:
97
+ return f"session:{session_id[:16]}"
98
+ return self._get_client_ip(scope)
83
99
 
84
100
  def is_allowed(self, scope: dict) -> tuple[bool, int]:
85
101
  """Check if request is allowed. Returns (allowed, retry_after_seconds)."""
102
+ # Local traffic is trusted and must not be rate limited: all opencode
103
+ # sessions and subagents connect over loopback, and throttling them
104
+ # only serves to break legitimate concurrent usage.
105
+ if self._get_client_ip(scope) in _LOCAL_IPS:
106
+ return True, 0
107
+
86
108
  client_id = self._get_client_id(scope)
87
109
  now = time.time()
88
110
  window_start = now - self.window_seconds
@@ -0,0 +1,64 @@
1
+ """Background job queue system (Sidekiq-like)."""
2
+
3
+ from opencode_memory.jobs.circuit_breaker import (
4
+ CircuitBreakerManager,
5
+ CircuitBreakerOpenError,
6
+ )
7
+ from opencode_memory.jobs.executor import (
8
+ JobExecutor,
9
+ JobExecutorBuilder,
10
+ ResourceLimits,
11
+ )
12
+ from opencode_memory.jobs.handlers import JobHandlers
13
+ from opencode_memory.jobs.queue import (
14
+ DEFAULT_CONFIGS,
15
+ JobConfigRegistry,
16
+ JobQueue,
17
+ )
18
+ from opencode_memory.jobs.scheduler import (
19
+ DEFAULT_SCHEDULES,
20
+ JobScheduler,
21
+ ScheduleConfig,
22
+ )
23
+ from opencode_memory.jobs.worker import BackgroundJobWorker
24
+ from opencode_memory.models import (
25
+ BackgroundJob,
26
+ CircuitBreaker,
27
+ CircuitBreakerState,
28
+ DeadJob,
29
+ JobConfig,
30
+ JobMetrics,
31
+ JobStatus,
32
+ ResourceType,
33
+ )
34
+
35
+ __all__ = [
36
+ # Queue
37
+ "JobQueue",
38
+ "JobConfigRegistry",
39
+ "DEFAULT_CONFIGS",
40
+ # Scheduler
41
+ "JobScheduler",
42
+ "ScheduleConfig",
43
+ "DEFAULT_SCHEDULES",
44
+ # Executor
45
+ "JobExecutor",
46
+ "JobExecutorBuilder",
47
+ "ResourceLimits",
48
+ # Handlers
49
+ "JobHandlers",
50
+ # Worker
51
+ "BackgroundJobWorker",
52
+ # Circuit Breaker
53
+ "CircuitBreakerManager",
54
+ "CircuitBreakerOpenError",
55
+ # Models
56
+ "BackgroundJob",
57
+ "CircuitBreaker",
58
+ "CircuitBreakerState",
59
+ "DeadJob",
60
+ "JobConfig",
61
+ "JobMetrics",
62
+ "JobStatus",
63
+ "ResourceType",
64
+ ]