Commit graph

25 commits

Author SHA1 Message Date
ade1d2696f chore(deps): update dependency zod to v4 2026-05-22 08:02:16 +00:00
47c4c760be add /oc bot 2026-05-22 09:41:45 +02:00
ff6196421d Merge pull request 'chore(deps): update dependency numpy to >=2.4.6,<3.0.0' (#3) from renovate/numpy-2.x into main
Reviewed-on: https://bitfreedom.net/code/code/apunkt/iai-mcp-opencode/pulls/3
2026-05-22 09:39:58 +02:00
ff7d9e98f3 chore(deps): update dependency numpy to >=2.4.6,<3.0.0 2026-05-22 06:11:36 +00:00
0e9f86566f Merge pull request 'chore: Configure Renovate' (#1) from renovate/configure into main
Reviewed-on: https://bitfreedom.net/code/code/apunkt/iai-mcp-opencode/pulls/1
2026-05-22 08:09:56 +02:00
0f4e4cc7ee Add renovate.json 2026-05-22 06:08:24 +00:00
46a2de0787
feat: add monitor.sh — daemon health, topology, sleep cycles, edge health 2026-05-21 10:35:07 +02:00
7f01b8824e
fix(systemd): Restart=always so daemon restarts after HIBERNATION clean exit
The daemon exits with status 0 on HIBERNATION (by design, to drop RSS).
Restart=on-failure only restarts on non-zero exits, so the daemon
stayed dead. Change to Restart=always.
2026-05-19 10:32:06 +02:00
382b411133
feat(maintenance): add dedup-edges subcommand to clean Qdrant duplicates
Cleans up duplicate edge points left by the boost_edges() bug (fixed
in previous commit). Each unique (src, dst, edge_type) keeps the
highest-weight point; duplicates are deleted. Default --dry-run.
2026-05-16 12:08:28 +02:00
e2883cceaa
fix: prevent duplicate edges in Qdrant and fix sigma floor check
Duplicate edges root cause — critical logic bug in QdrantStore:
boost_edges() and add_contradicts_edge() always created new points with
random UUIDs instead of reusing existing point IDs. Each boost call
added a duplicate point rather than updating in-place, causing 190
duplicate edge rows for 73 unique edges.

Sigma fix — compute_sigma() checked total node count (311 >= 200 floor)
but the largest connected component had only 2 nodes. Now checks the
largest CC size, which is the correct semantic for Humphries-Gurney
sigma validity.
2026-05-16 12:02:49 +02:00
7eea3ced28
fix: _decay_edges — handle string updated_at from Qdrant and add TableShim delete/update
The Qdrant _TableShim returned updated_at as ISO strings (not datetime
objects), causing str.replace(tzinfo=...) to fail with
"str.replace() takes no keyword arguments". Parse strings via
datetime.fromisoformat() before timezone handling.

Also add missing delete(where) and update(where=, values=) methods to
_TableShim so the LanceDB-compatible shim works with Qdrant's payload
collection, plus a _parse_where() helper to convert where clauses to
Qdrant Filters.
2026-05-15 16:59:02 +02:00
6bd479b137
fix: Qdrant edge creation — use UUID string IDs and empty vectors for payload-only points 2026-05-15 10:29:23 +02:00
7173a446a6
feat(wrapper): spawn daemon on Linux when hibernated
On non-darwin platforms, the wrapper now attempts to spawn the daemon
via 'iai-mcp daemon start' (which uses systemctl --user start) when
the daemon socket is unreachable. This allows the daemon to wake from
hibernation automatically instead of only writing wake.signal as a
passive marker.

If spawn fails (binary not found, systemd unavailable), falls back to
writing wake.signal for future daemon boots.
2026-05-14 18:05:05 +02:00
a31bbd7f58
fix: Qdrant backend support — topology, doctor, and community detection
- Fix build_runtime_graph to use backend-agnostic records_as_dataframe()
  and edges_as_dataframe() instead of LanceDB-specific open_table()
- Fix CLI topology command: JSON-RPC envelope + result extraction
- Fix community.py KeyError when graph has nodes but no edges
- Update doctor check (i) to report Qdrant collection counts when
  Qdrant is active, LanceDB versions when LanceDB is active
- Fix HIBERNATION startup exit: dispatch REQUEST_ARRIVED on boot
- Fix systemd unit: StartLimit* keys in [Unit] section
- Broaden capture.py exception handler for deferred capture failures
- Add records_as_dataframe() and edges_as_dataframe() to MemoryStore
2026-05-14 16:20:54 +02:00
8492719735
fix: support Qdrant backend on non-AVX CPUs
- doctor: skip LanceDB check when qdrant_storage/ dir detected
- topology: use daemon socket instead of local store (avoids lancedb crash)
- qdrant_store: add records_as_dataframe() + wire into _TableShim
  so build_runtime_graph() works with Qdrant (was returning empty)
2026-05-12 18:14:03 +02:00
01e5903035
docs: update README for Linux support, Qdrant backend, and portable systemd unit 2026-05-12 16:58:32 +02:00
8a116d270c
update gitignore 2026-05-12 16:47:31 +02:00
91d67b2e12
refactor: opencode 2026-05-12 16:45:15 +02:00
Areg Noya
09c5b30f15 Update 2026-05-10 20:42:02 -07:00
Areg Noya
739ff9dc27 Update README
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: XNLLLLH <XNLLLLH@users.noreply.github.com>
2026-05-10 01:00:04 -07:00
Areg Noya
9f678bfe4d Update README
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: XNLLLLH <XNLLLLH@users.noreply.github.com>
2026-05-10 00:50:31 -07:00
Areg Noya
3094a2b81f Update README
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: XNLLLLH <XNLLLLH@users.noreply.github.com>
2026-05-10 00:48:47 -07:00
Areg Noya
5e2c9fa9ca Update README badges
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: XNLLLLH <XNLLLLH@users.noreply.github.com>
2026-05-10 00:37:00 -07:00
Areg Noya
2ecdc10a5e Improve README structure: add badges, TOC, reorder sections
Move Quick start above Usage/How it works for faster onboarding.
Move About the name to end. Add license, platform, and benchmark
badges. Add table of contents for navigation.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: XNLLLLH <XNLLLLH@users.noreply.github.com>
2026-05-10 00:27:06 -07:00
Areg Noya
f6b876fbe7 Initial release: iai-mcp v0.1.0
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: XNLLLLH <XNLLLLH@users.noreply.github.com>
2026-05-06 01:04:47 -07:00