memorytalk 0.9.0__tar.gz → 0.9.2__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 (102) hide show
  1. {memorytalk-0.9.0 → memorytalk-0.9.2}/PKG-INFO +1 -1
  2. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/setup.py +19 -0
  3. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/repository/schema.py +7 -17
  4. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk.egg-info/PKG-INFO +1 -1
  5. {memorytalk-0.9.0 → memorytalk-0.9.2}/pyproject.toml +1 -1
  6. {memorytalk-0.9.0 → memorytalk-0.9.2}/LICENSE +0 -0
  7. {memorytalk-0.9.0 → memorytalk-0.9.2}/README.md +0 -0
  8. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/__init__.py +0 -0
  9. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/__main__.py +0 -0
  10. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/adapters/__init__.py +0 -0
  11. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/adapters/base.py +0 -0
  12. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/adapters/claude_code.py +0 -0
  13. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/adapters/codex.py +0 -0
  14. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/adapters/openclaw.py +0 -0
  15. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/api/__init__.py +0 -0
  16. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/api/cards.py +0 -0
  17. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/api/read.py +0 -0
  18. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/api/recall.py +0 -0
  19. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/api/reviews.py +0 -0
  20. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/api/search.py +0 -0
  21. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/api/sessions.py +0 -0
  22. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/api/status.py +0 -0
  23. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/api/sync.py +0 -0
  24. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/__init__.py +0 -0
  25. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/_format.py +0 -0
  26. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/_http.py +0 -0
  27. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/_render.py +0 -0
  28. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/card.py +0 -0
  29. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/read.py +0 -0
  30. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/recall.py +0 -0
  31. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/review.py +0 -0
  32. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/search.py +0 -0
  33. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/server.py +0 -0
  34. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/session.py +0 -0
  35. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/sync.py +0 -0
  36. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/cli/upgrade.py +0 -0
  37. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/config.py +0 -0
  38. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hook_assets/claude_code/.claude-plugin/marketplace.json +0 -0
  39. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hook_assets/claude_code/plugins/memory-talk-recall/.claude-plugin/plugin.json +0 -0
  40. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hook_assets/claude_code/plugins/memory-talk-recall/hooks/hooks.json +0 -0
  41. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hook_assets/codex/.agents/plugins/marketplace.json +0 -0
  42. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hook_assets/codex/plugins/memory-talk-recall/.codex-plugin/plugin.json +0 -0
  43. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hook_assets/codex/plugins/memory-talk-recall/hooks/hooks.json +0 -0
  44. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hooks/__init__.py +0 -0
  45. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hooks/base.py +0 -0
  46. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hooks/claude_code.py +0 -0
  47. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hooks/codex.py +0 -0
  48. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hooks/materialize.py +0 -0
  49. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hooks/probe.py +0 -0
  50. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/hooks/state.py +0 -0
  51. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/provider/__init__.py +0 -0
  52. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/provider/embedding.py +0 -0
  53. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/provider/lancedb.py +0 -0
  54. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/provider/storage.py +0 -0
  55. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/repository/__init__.py +0 -0
  56. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/repository/cards.py +0 -0
  57. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/repository/recall.py +0 -0
  58. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/repository/reviews.py +0 -0
  59. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/repository/search_log.py +0 -0
  60. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/repository/sessions.py +0 -0
  61. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/repository/store.py +0 -0
  62. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/repository/sync_checkpoint.py +0 -0
  63. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/schemas/__init__.py +0 -0
  64. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/schemas/card.py +0 -0
  65. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/schemas/cards.py +0 -0
  66. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/schemas/read.py +0 -0
  67. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/schemas/recall.py +0 -0
  68. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/schemas/review.py +0 -0
  69. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/schemas/reviews.py +0 -0
  70. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/schemas/search.py +0 -0
  71. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/schemas/session.py +0 -0
  72. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/schemas/status.py +0 -0
  73. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/schemas/sync.py +0 -0
  74. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/server.py +0 -0
  75. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/service/__init__.py +0 -0
  76. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/service/backfill.py +0 -0
  77. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/service/cards.py +0 -0
  78. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/service/events.py +0 -0
  79. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/service/index_buffer.py +0 -0
  80. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/service/read.py +0 -0
  81. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/service/recall.py +0 -0
  82. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/service/reviews.py +0 -0
  83. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/service/search.py +0 -0
  84. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/service/sessions.py +0 -0
  85. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/service/sync.py +0 -0
  86. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/util/__init__.py +0 -0
  87. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/util/console.py +0 -0
  88. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/util/dsl.py +0 -0
  89. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/util/env_template.py +0 -0
  90. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/util/formula.py +0 -0
  91. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/util/highlight.py +0 -0
  92. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/util/ids.py +0 -0
  93. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/util/indexes.py +0 -0
  94. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/util/settings_io.py +0 -0
  95. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/util/tag_filter.py +0 -0
  96. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk/util/tags.py +0 -0
  97. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk.egg-info/SOURCES.txt +0 -0
  98. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk.egg-info/dependency_links.txt +0 -0
  99. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk.egg-info/entry_points.txt +0 -0
  100. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk.egg-info/requires.txt +0 -0
  101. {memorytalk-0.9.0 → memorytalk-0.9.2}/memorytalk.egg-info/top_level.txt +0 -0
  102. {memorytalk-0.9.0 → memorytalk-0.9.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: memorytalk
3
- Version: 0.9.0
3
+ Version: 0.9.2
4
4
  Summary: Persistent cross-session memory for AI agents — Talk-Card architecture with forum-dynamics sinking/floating (v3)
5
5
  License-Expression: Apache-2.0
6
6
  Requires-Python: >=3.10
@@ -447,6 +447,25 @@ def _apply_install(r: HookRow, cfg: Config) -> dict:
447
447
  else:
448
448
  err_console.print(f" [dim]·[/dim] assets up to date")
449
449
 
450
+ # Force re-install when our marketplace content changed AND the
451
+ # plugin is already in the host's cache. Host CLIs(Codex / Claude
452
+ # Code)copy plugin files into their own cache at ``plugin add``
453
+ # time and never re-read our marketplace directory afterwards.
454
+ # ``marketplace upgrade`` only re-pulls if the plugin manifest's
455
+ # ``version`` field bumped, which we don't reliably do — so to
456
+ # guarantee the new ``hooks.json`` reaches the host, we
457
+ # uninstall + reinstall. The cost (re-trust step on Codex) is
458
+ # unavoidable anyway since the trust hash is tied to hook content.
459
+ if changed and r.state != HostState.ABSENT:
460
+ err_console.print(
461
+ " [dim]· content changed — forcing reinstall to refresh "
462
+ "host plugin cache[/dim]"
463
+ )
464
+ try:
465
+ adapter.uninstall()
466
+ except RuntimeError as e:
467
+ err_console.print(f" [yellow]⚠ uninstall before reinstall: {e}[/yellow]")
468
+
450
469
  try:
451
470
  adapter.install(r.materialized)
452
471
  except RuntimeError as e:
@@ -250,20 +250,10 @@ async def _additive_migrations(conn: aiosqlite.Connection) -> None:
250
250
  # separate ``sync.db`` (see ``repository/sync_checkpoint.py``).
251
251
  await conn.execute("DROP TABLE IF EXISTS ingest_log")
252
252
 
253
- # 4. 0.9.0: drop ``recall_log`` (replaced by ``recall_event`` +
254
- # ``recall.jsonl`` file). History is intentionally not migrated
255
- # the old table never stored prompts, so a faithful
256
- # ``RecallEvent`` row can't be reconstructed. The old table's
257
- # own DDL comment was "in-memory-ish cleared on rebuild", so
258
- # losing it is the documented contract.
259
- await conn.execute("DROP INDEX IF EXISTS idx_recall_log_session")
260
- await conn.execute("DROP TABLE IF EXISTS recall_log")
261
-
262
- # 5. 0.9.0: drop ``card_stats.recall_count`` column — popularity is
263
- # now derived from ``recall_event`` on read. SQLite ALTER TABLE
264
- # DROP COLUMN requires 3.35+ (Mar 2021); Python 3.10+ ships well
265
- # above that.
266
- async with conn.execute("PRAGMA table_info(card_stats)") as cursor:
267
- stats_cols = {row[1] for row in await cursor.fetchall()}
268
- if "recall_count" in stats_cols:
269
- await conn.execute("ALTER TABLE card_stats DROP COLUMN recall_count")
253
+ # 0.9.x: NO in-place migration from 0.8.x ``recall_log`` /
254
+ # ``card_stats.recall_count`` upgrades require deleting
255
+ # ``~/.memory.talk`` and starting fresh. The recall subsystem
256
+ # changed shape too deeply (file canonical, session_id namespace
257
+ # correction) to make a partial in-place migration meaningful.
258
+ # New installs hit the fresh DDL above and have no legacy rows
259
+ # to worry about.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: memorytalk
3
- Version: 0.9.0
3
+ Version: 0.9.2
4
4
  Summary: Persistent cross-session memory for AI agents — Talk-Card architecture with forum-dynamics sinking/floating (v3)
5
5
  License-Expression: Apache-2.0
6
6
  Requires-Python: >=3.10
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "memorytalk"
3
- version = "0.9.0"
3
+ version = "0.9.2"
4
4
  description = "Persistent cross-session memory for AI agents — Talk-Card architecture with forum-dynamics sinking/floating (v3)"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
File without changes
File without changes
File without changes