You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* chore: bump version to 2.6.0 for web management interface release
* chore: bump version to 2.6.0 for web management interface release
* feat: wire recall timeout into MemoryManager.recall() (RFC-014 D-03)
* style: ruff format memory_manager.py for CI compliance
* Update docs/THREAT_MODEL.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Patrick Roland <48327651+rolandpg@users.noreply.github.com>
* Update src/zettelforge/memory_manager.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Patrick Roland <48327651+rolandpg@users.noreply.github.com>
---------
Signed-off-by: Patrick Roland <48327651+rolandpg@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| D-03 | Malicious query triggers deep graph traversal exhausting time/resources | BlendedRetriever |**Medium** — bounded, but timeout may still block |`governance.limits.recall_timeout_seconds` (RFC-014, default 30s) applies a wall-clock timeout to the recall pipeline, but the current `ThreadPoolExecutor`-based approach must not be treated as guaranteeing prompt return on timeout. `max_graph_depth`(default 2) limits BFS hops. `default_k` (default 10) limits results. Reclassify to **Low** only after the timeout path is verified to return promptly and log `recall_timed_out` without waiting for the running task to finish. |
143
143
| D-04 | spaCy model download blocks first `remember()` when PII is enabled | PIIValidator (lazy load) |**Low** — delayed first call (~2-3 seconds) | One-time download cost. Matching fastembed pattern. Can be pre-downloaded for air-gapped deployments. |
0 commit comments