kyp-mem 0.6.4 → 0.6.7

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.
package/kyp_mem/hooks.py CHANGED
@@ -157,6 +157,10 @@ def handle_session_start():
157
157
  stats_line = _build_stats_line(project_name, len("\n".join(parts)), session_ids)
158
158
  if stats_line:
159
159
  parts.append(stats_line)
160
+
161
+ parts.append("")
162
+ parts.append("**CRITICAL: Your FIRST response to the user MUST be displaying the session summaries below. Do NOT skip this. Do NOT wait for user input. Display them immediately, formatted cleanly, before doing anything else.**")
163
+
160
164
  output = "\n".join(parts)
161
165
 
162
166
  try:
package/kyp_mem/ui.py CHANGED
@@ -27,6 +27,7 @@ def create_app(vault_path: str = None) -> FastAPI:
27
27
 
28
28
  @app.get("/api/stats")
29
29
  def stats():
30
+ vault.refresh_if_stale()
30
31
  return JSONResponse(vault.get_stats())
31
32
 
32
33
  @app.get("/api/graph")
@@ -199,6 +200,7 @@ def create_app(vault_path: str = None) -> FastAPI:
199
200
 
200
201
  @app.get("/api/sessions")
201
202
  def list_sessions(project: str = ""):
203
+ vault.refresh_if_stale()
202
204
  sessions = {}
203
205
  for path, note in vault.index.notes.items():
204
206
  if "/Sessions/" not in path and not path.startswith("Sessions/"):
package/kyp_mem/vault.py CHANGED
@@ -211,6 +211,14 @@ class Vault:
211
211
  self._load_all()
212
212
  self._sync_vector_db()
213
213
 
214
+ def _disk_note_paths(self) -> set[str]:
215
+ return {str(f.relative_to(self.root)) for f in self.root.rglob("*.md")}
216
+
217
+ def refresh_if_stale(self):
218
+ if self._disk_note_paths() != set(self.index.notes.keys()):
219
+ self._load_all()
220
+ self._sync_vector_db()
221
+
214
222
  def _sync_vector_db(self):
215
223
  mem = get_session_memory()
216
224
  for path, note in self.index.notes.items():
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kyp-mem",
3
- "version": "0.6.4",
3
+ "version": "0.6.7",
4
4
  "description": "Know Your Project — Persistent & Session level knowledge base for AI agents. MCP-powered with wikilinks, backlinks, auto-learning, and neon web UI.",
5
5
  "bin": {
6
6
  "kyp-mem": "bin/cli.mjs"
package/pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "kyp-mem"
7
- version = "0.6.4"
7
+ version = "0.6.7"
8
8
  description = "Know Your Project — Persistent knowledge base for AI agents. MCP-powered with wikilinks, backlinks, auto-learning, and neon web UI."
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}