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
refactor(codex): use direct API calls and add file locking
- Replace subprocess nmem CLI calls with direct nmem_cli API imports
- Add fcntl-based file locking to prevent race conditions
- Implement atomic state file writes with temp file + os.replace
- Add thread existence check and use create vs append endpoints
- Filter malformed messages before sync
- Add rollback mechanism in refresh_thread_titles on failure
- Update tests to mock nmem_cli modules instead of subprocess
- Add AGENTS.md with project agent collaboration guidelines
[`integrations.json`](integrations.json) is the **single source of truth** for all Nowledge Mem integrations. It tracks capabilities, versions, install commands, transport, tool naming, and thread save methods.
6
+
7
+
**When adding or modifying any integration, update `integrations.json` first.** Other surfaces (website `integrations.ts`, desktop app integrations view, README tables, marketplace JSONs) derive from or validate against this file.
8
+
9
+
The desktop app fetches this file at runtime from `https://raw.githubusercontent.com/nowledge-co/community/main/integrations.json` for plugin update awareness. Changes to the schema (adding/removing/renaming fields) affect:
[`shared/behavioral-guidance.md`](shared/behavioral-guidance.md) defines when plugins should search, save, read Working Memory, and distill. All plugins should align with this shared guidance.
17
+
18
+
## Plugin Development
19
+
20
+
See [`docs/PLUGIN_DEVELOPMENT_GUIDE.md`](docs/PLUGIN_DEVELOPMENT_GUIDE.md) for authoring rules, directory layout, and testing expectations.
21
+
22
+
## Submodules
23
+
24
+
`nowledge-mem-gemini-cli` is a nested submodule (separate repo with its own release cycle). All other integrations are normal directories in this repo.
25
+
26
+
## Commit Workflow
27
+
28
+
When modifying this repo as a submodule of the parent `muscat` repo:
29
+
1. Commit inside `community/` first
30
+
2. Then stage the updated submodule reference in the parent repo
0 commit comments