@cachly-dev/mcp-server 0.10.65 → 0.10.67
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/dist/src/embeddings.js +10 -0
- package/dist/src/embeddings.js.map +1 -1
- package/dist/src/handlers/brain.js +2 -1
- package/dist/src/handlers/brain.js.map +1 -1
- package/dist/src/handlers/cache.js +4 -0
- package/dist/src/handlers/cache.js.map +1 -1
- package/dist/src/handlers/tco.js +1 -0
- package/dist/src/handlers/tco.js.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/package.json +7 -1
- package/server.json +2 -2
- package/.env.test.example +0 -23
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -50
- package/.github/ISSUE_TEMPLATE/config.yml +0 -8
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -25
- package/.github/workflows/eas-build-android.yml +0 -58
- package/.github/workflows/eas-update.yml +0 -55
- package/.github/workflows/publish.yml +0 -72
- package/BENCH.md +0 -113
- package/CHANGELOG.md +0 -653
- package/Dockerfile +0 -16
- package/LAUNCH_TEXTS.md +0 -182
- package/PROGRESS.md +0 -141
- package/STRATEGY.md +0 -228
- package/VISION_10X.md +0 -133
- package/apps/travel-chaos-organizer/.env.example +0 -49
- package/apps/travel-chaos-organizer/DEPLOY.md +0 -328
- package/apps/travel-chaos-organizer/Makefile +0 -57
- package/apps/travel-chaos-organizer/README.md +0 -159
- package/apps/travel-chaos-organizer/backend/.env.example +0 -10
- package/apps/travel-chaos-organizer/backend/Dockerfile +0 -25
- package/apps/travel-chaos-organizer/backend/alembic/env.py +0 -56
- package/apps/travel-chaos-organizer/backend/alembic/script.py.mako +0 -24
- package/apps/travel-chaos-organizer/backend/alembic/versions/.gitkeep +0 -0
- package/apps/travel-chaos-organizer/backend/alembic/versions/0001_stripe_customer_id.py +0 -24
- package/apps/travel-chaos-organizer/backend/alembic/versions/0002_telegram_chat_id.py +0 -24
- package/apps/travel-chaos-organizer/backend/alembic.ini +0 -39
- package/apps/travel-chaos-organizer/backend/app/__init__.py +0 -0
- package/apps/travel-chaos-organizer/backend/app/auth/__init__.py +0 -0
- package/apps/travel-chaos-organizer/backend/app/auth/keycloak.py +0 -81
- package/apps/travel-chaos-organizer/backend/app/config.py +0 -66
- package/apps/travel-chaos-organizer/backend/app/db/__init__.py +0 -0
- package/apps/travel-chaos-organizer/backend/app/db/database.py +0 -20
- package/apps/travel-chaos-organizer/backend/app/db/migrations/001_init.sql +0 -71
- package/apps/travel-chaos-organizer/backend/app/db/migrations/002_telemetry_freemium.sql +0 -31
- package/apps/travel-chaos-organizer/backend/app/db/migrations/003_telegram_chat_id.sql +0 -4
- package/apps/travel-chaos-organizer/backend/app/db/migrations/004_stripe_and_email.sql +0 -5
- package/apps/travel-chaos-organizer/backend/app/limiter.py +0 -4
- package/apps/travel-chaos-organizer/backend/app/logging_config.py +0 -25
- package/apps/travel-chaos-organizer/backend/app/main.py +0 -77
- package/apps/travel-chaos-organizer/backend/app/models/__init__.py +0 -0
- package/apps/travel-chaos-organizer/backend/app/models/schemas.py +0 -142
- package/apps/travel-chaos-organizer/backend/app/routers/__init__.py +0 -0
- package/apps/travel-chaos-organizer/backend/app/routers/admin.py +0 -237
- package/apps/travel-chaos-organizer/backend/app/routers/cache.py +0 -13
- package/apps/travel-chaos-organizer/backend/app/routers/events.py +0 -29
- package/apps/travel-chaos-organizer/backend/app/routers/export.py +0 -122
- package/apps/travel-chaos-organizer/backend/app/routers/inbox.py +0 -122
- package/apps/travel-chaos-organizer/backend/app/routers/items.py +0 -130
- package/apps/travel-chaos-organizer/backend/app/routers/mail.py +0 -108
- package/apps/travel-chaos-organizer/backend/app/routers/parse.py +0 -303
- package/apps/travel-chaos-organizer/backend/app/routers/payments.py +0 -179
- package/apps/travel-chaos-organizer/backend/app/routers/trips.py +0 -134
- package/apps/travel-chaos-organizer/backend/app/routers/users.py +0 -169
- package/apps/travel-chaos-organizer/backend/app/routers/waitlist.py +0 -37
- package/apps/travel-chaos-organizer/backend/app/services/__init__.py +0 -0
- package/apps/travel-chaos-organizer/backend/app/services/cache.py +0 -131
- package/apps/travel-chaos-organizer/backend/app/services/drip.py +0 -128
- package/apps/travel-chaos-organizer/backend/app/services/email.py +0 -61
- package/apps/travel-chaos-organizer/backend/app/services/errors.py +0 -44
- package/apps/travel-chaos-organizer/backend/app/services/notifier.py +0 -10
- package/apps/travel-chaos-organizer/backend/app/services/ollama.py +0 -101
- package/apps/travel-chaos-organizer/backend/app/services/parser.py +0 -22
- package/apps/travel-chaos-organizer/backend/app/services/quota.py +0 -85
- package/apps/travel-chaos-organizer/backend/app/services/sentry.py +0 -11
- package/apps/travel-chaos-organizer/backend/app/services/telemetry.py +0 -35
- package/apps/travel-chaos-organizer/backend/pytest.ini +0 -4
- package/apps/travel-chaos-organizer/backend/requirements-dev.txt +0 -6
- package/apps/travel-chaos-organizer/backend/requirements.txt +0 -25
- package/apps/travel-chaos-organizer/backend/tests/__init__.py +0 -0
- package/apps/travel-chaos-organizer/backend/tests/conftest.py +0 -223
- package/apps/travel-chaos-organizer/backend/tests/test_admin.py +0 -99
- package/apps/travel-chaos-organizer/backend/tests/test_cache.py +0 -142
- package/apps/travel-chaos-organizer/backend/tests/test_drip.py +0 -32
- package/apps/travel-chaos-organizer/backend/tests/test_e2e_chain.py +0 -121
- package/apps/travel-chaos-organizer/backend/tests/test_export.py +0 -48
- package/apps/travel-chaos-organizer/backend/tests/test_inbox.py +0 -107
- package/apps/travel-chaos-organizer/backend/tests/test_items.py +0 -138
- package/apps/travel-chaos-organizer/backend/tests/test_mail.py +0 -113
- package/apps/travel-chaos-organizer/backend/tests/test_ollama.py +0 -145
- package/apps/travel-chaos-organizer/backend/tests/test_parse_url.py +0 -98
- package/apps/travel-chaos-organizer/backend/tests/test_parser.py +0 -72
- package/apps/travel-chaos-organizer/backend/tests/test_payments.py +0 -163
- package/apps/travel-chaos-organizer/backend/tests/test_quota.py +0 -46
- package/apps/travel-chaos-organizer/backend/tests/test_search.py +0 -67
- package/apps/travel-chaos-organizer/backend/tests/test_trips.py +0 -123
- package/apps/travel-chaos-organizer/backend/tests/test_users.py +0 -52
- package/apps/travel-chaos-organizer/backups/.gitkeep +0 -0
- package/apps/travel-chaos-organizer/caddy/Caddyfile +0 -27
- package/apps/travel-chaos-organizer/docker-compose.node1.yml +0 -31
- package/apps/travel-chaos-organizer/docker-compose.override.yml +0 -14
- package/apps/travel-chaos-organizer/docker-compose.yml +0 -128
- package/apps/travel-chaos-organizer/frontend/.env.example +0 -13
- package/apps/travel-chaos-organizer/frontend/app/(app)/_layout.tsx +0 -80
- package/apps/travel-chaos-organizer/frontend/app/(app)/inbox.tsx +0 -166
- package/apps/travel-chaos-organizer/frontend/app/(app)/search.tsx +0 -130
- package/apps/travel-chaos-organizer/frontend/app/(app)/settings.tsx +0 -381
- package/apps/travel-chaos-organizer/frontend/app/(app)/trips/[id].tsx +0 -346
- package/apps/travel-chaos-organizer/frontend/app/(app)/trips.tsx +0 -363
- package/apps/travel-chaos-organizer/frontend/app/(app)/upgrade/cancel.tsx +0 -34
- package/apps/travel-chaos-organizer/frontend/app/(app)/upgrade/success.tsx +0 -35
- package/apps/travel-chaos-organizer/frontend/app/(auth)/login.tsx +0 -91
- package/apps/travel-chaos-organizer/frontend/app/_layout.tsx +0 -71
- package/apps/travel-chaos-organizer/frontend/app/auth.tsx +0 -29
- package/apps/travel-chaos-organizer/frontend/app/index.tsx +0 -16
- package/apps/travel-chaos-organizer/frontend/app/onboarding.tsx +0 -119
- package/apps/travel-chaos-organizer/frontend/app.config.ts +0 -54
- package/apps/travel-chaos-organizer/frontend/assets/adaptive-icon.svg +0 -66
- package/apps/travel-chaos-organizer/frontend/assets/icon.svg +0 -79
- package/apps/travel-chaos-organizer/frontend/assets/splash.svg +0 -15
- package/apps/travel-chaos-organizer/frontend/components/BottomSheet.tsx +0 -102
- package/apps/travel-chaos-organizer/frontend/components/ConfettiCannon.tsx +0 -107
- package/apps/travel-chaos-organizer/frontend/components/ConfirmDialog.tsx +0 -109
- package/apps/travel-chaos-organizer/frontend/components/ErrorBoundary.tsx +0 -45
- package/apps/travel-chaos-organizer/frontend/components/FileUploadButton.tsx +0 -19
- package/apps/travel-chaos-organizer/frontend/components/ImportSheet.tsx +0 -155
- package/apps/travel-chaos-organizer/frontend/components/OfflineBadge.tsx +0 -55
- package/apps/travel-chaos-organizer/frontend/components/QRCodeViewer.tsx +0 -80
- package/apps/travel-chaos-organizer/frontend/components/ScoreRing.tsx +0 -39
- package/apps/travel-chaos-organizer/frontend/components/Screen.tsx +0 -39
- package/apps/travel-chaos-organizer/frontend/components/Skeleton.tsx +0 -70
- package/apps/travel-chaos-organizer/frontend/components/SwipeableInboxItem.tsx +0 -121
- package/apps/travel-chaos-organizer/frontend/components/SwipeableTimelineItem.tsx +0 -70
- package/apps/travel-chaos-organizer/frontend/components/TimelineItem.tsx +0 -73
- package/apps/travel-chaos-organizer/frontend/components/TimelineItemDetail.tsx +0 -130
- package/apps/travel-chaos-organizer/frontend/components/Toast.tsx +0 -60
- package/apps/travel-chaos-organizer/frontend/components/ToastContext.tsx +0 -42
- package/apps/travel-chaos-organizer/frontend/components/TripCard.tsx +0 -146
- package/apps/travel-chaos-organizer/frontend/components/TripQRModal.tsx +0 -70
- package/apps/travel-chaos-organizer/frontend/components/UpgradeBanner.tsx +0 -44
- package/apps/travel-chaos-organizer/frontend/eas.json +0 -22
- package/apps/travel-chaos-organizer/frontend/hooks/useInbox.ts +0 -24
- package/apps/travel-chaos-organizer/frontend/hooks/useNetworkSync.ts +0 -60
- package/apps/travel-chaos-organizer/frontend/hooks/useTrips.ts +0 -112
- package/apps/travel-chaos-organizer/frontend/lib/api.ts +0 -223
- package/apps/travel-chaos-organizer/frontend/lib/auth.ts +0 -93
- package/apps/travel-chaos-organizer/frontend/lib/db.ts +0 -86
- package/apps/travel-chaos-organizer/frontend/lib/fileCache.ts +0 -54
- package/apps/travel-chaos-organizer/frontend/lib/haptics.ts +0 -13
- package/apps/travel-chaos-organizer/frontend/lib/notifications.ts +0 -112
- package/apps/travel-chaos-organizer/frontend/lib/offlineQueue.ts +0 -145
- package/apps/travel-chaos-organizer/frontend/lib/quota.tsx +0 -43
- package/apps/travel-chaos-organizer/frontend/lib/sentry.ts +0 -28
- package/apps/travel-chaos-organizer/frontend/lib/shareIntent.ts +0 -44
- package/apps/travel-chaos-organizer/frontend/package-lock.json +0 -13221
- package/apps/travel-chaos-organizer/frontend/package.json +0 -44
- package/apps/travel-chaos-organizer/frontend/tsconfig.json +0 -23
- package/apps/travel-chaos-organizer/keycloak/realm-export.json +0 -59
- package/apps/travel-chaos-organizer/landing/index.html +0 -773
- package/apps/travel-chaos-organizer/scripts/backup.sh +0 -14
- package/apps/travel-chaos-organizer/scripts/configure-env.sh +0 -82
- package/apps/travel-chaos-organizer/scripts/deploy.sh +0 -54
- package/apps/travel-chaos-organizer/scripts/health-check.sh +0 -36
- package/apps/travel-chaos-organizer/scripts/migrate.sh +0 -7
- package/apps/travel-chaos-organizer/scripts/server-setup.sh +0 -85
- package/apps/travel-chaos-organizer/scripts/smoke-test.sh +0 -29
- package/apps/travel-chaos-organizer/scripts/verify-tracking.sh +0 -71
- package/apps/travel-chaos-organizer/telegram-bot/.env.example +0 -3
- package/apps/travel-chaos-organizer/telegram-bot/Dockerfile +0 -6
- package/apps/travel-chaos-organizer/telegram-bot/bot.py +0 -504
- package/apps/travel-chaos-organizer/telegram-bot/requirements.txt +0 -3
- package/dist/src/__tests__/auth.test.d.ts +0 -1
- package/dist/src/__tests__/auth.test.js +0 -107
- package/dist/src/__tests__/auth.test.js.map +0 -1
- package/dist/src/__tests__/brain-flow.test.d.ts +0 -12
- package/dist/src/__tests__/brain-flow.test.js +0 -1241
- package/dist/src/__tests__/brain-flow.test.js.map +0 -1
- package/dist/src/__tests__/confidence.test.d.ts +0 -13
- package/dist/src/__tests__/confidence.test.js +0 -233
- package/dist/src/__tests__/confidence.test.js.map +0 -1
- package/dist/src/__tests__/e2e/api-auth.test.d.ts +0 -7
- package/dist/src/__tests__/e2e/api-auth.test.js +0 -162
- package/dist/src/__tests__/e2e/api-auth.test.js.map +0 -1
- package/dist/src/__tests__/e2e/api-health.test.d.ts +0 -7
- package/dist/src/__tests__/e2e/api-health.test.js +0 -95
- package/dist/src/__tests__/e2e/api-health.test.js.map +0 -1
- package/dist/src/__tests__/e2e/cli.test.d.ts +0 -10
- package/dist/src/__tests__/e2e/cli.test.js +0 -204
- package/dist/src/__tests__/e2e/cli.test.js.map +0 -1
- package/dist/src/__tests__/e2e/config.d.ts +0 -35
- package/dist/src/__tests__/e2e/config.js +0 -53
- package/dist/src/__tests__/e2e/config.js.map +0 -1
- package/dist/src/__tests__/e2e/funnel.test.d.ts +0 -13
- package/dist/src/__tests__/e2e/funnel.test.js +0 -90
- package/dist/src/__tests__/e2e/funnel.test.js.map +0 -1
- package/dist/src/__tests__/e2e/mcp-tools.test.d.ts +0 -7
- package/dist/src/__tests__/e2e/mcp-tools.test.js +0 -129
- package/dist/src/__tests__/e2e/mcp-tools.test.js.map +0 -1
- package/dist/src/__tests__/e2e/provisioning.test.d.ts +0 -15
- package/dist/src/__tests__/e2e/provisioning.test.js +0 -123
- package/dist/src/__tests__/e2e/provisioning.test.js.map +0 -1
- package/dist/src/__tests__/handlers-unit.test.d.ts +0 -12
- package/dist/src/__tests__/handlers-unit.test.js +0 -505
- package/dist/src/__tests__/handlers-unit.test.js.map +0 -1
- package/dist/src/__tests__/namespace.test.d.ts +0 -1
- package/dist/src/__tests__/namespace.test.js +0 -114
- package/dist/src/__tests__/namespace.test.js.map +0 -1
- package/dist/src/__tests__/rerank.test.d.ts +0 -1
- package/dist/src/__tests__/rerank.test.js +0 -125
- package/dist/src/__tests__/rerank.test.js.map +0 -1
- package/dist/src/__tests__/utils.test.d.ts +0 -1
- package/dist/src/__tests__/utils.test.js +0 -83
- package/dist/src/__tests__/utils.test.js.map +0 -1
- package/dist/src/bench/cachly-bench.d.ts +0 -39
- package/dist/src/bench/cachly-bench.js +0 -223
- package/dist/src/bench/cachly-bench.js.map +0 -1
- package/dist/src/bench/fixtures.d.ts +0 -37
- package/dist/src/bench/fixtures.js +0 -225
- package/dist/src/bench/fixtures.js.map +0 -1
- package/dist/src/search.test.d.ts +0 -1
- package/dist/src/search.test.js +0 -713
- package/dist/src/search.test.js.map +0 -1
- package/eslint.config.js +0 -16
- package/glama.json +0 -36
- package/llms.txt +0 -155
- package/packages/telegram-notify/SPLIT_PLAN.md +0 -106
- package/packages/telegram-notify/client.ts +0 -88
- package/packages/telegram-notify/emojis.json +0 -22
- package/packages/telegram-notify/pyproject.toml +0 -17
- package/packages/telegram-notify/telegram_notify/__init__.py +0 -3
- package/packages/telegram-notify/telegram_notify/client.py +0 -87
- package/packages/telegram-notify/telegram_notify/emojis.json +0 -22
- package/scripts/e2e-run.sh +0 -160
- package/scripts/generate-icons.js +0 -28
- package/smithery.yaml +0 -45
- package/src/__tests__/auth.test.ts +0 -147
- package/src/__tests__/brain-flow.test.ts +0 -1472
- package/src/__tests__/confidence.test.ts +0 -285
- package/src/__tests__/e2e/api-auth.test.ts +0 -182
- package/src/__tests__/e2e/api-health.test.ts +0 -103
- package/src/__tests__/e2e/cli.test.ts +0 -228
- package/src/__tests__/e2e/config.ts +0 -53
- package/src/__tests__/e2e/funnel.test.ts +0 -99
- package/src/__tests__/e2e/mcp-tools.test.ts +0 -191
- package/src/__tests__/e2e/provisioning.test.ts +0 -128
- package/src/__tests__/handlers-unit.test.ts +0 -677
- package/src/__tests__/namespace.test.ts +0 -126
- package/src/__tests__/rerank.test.ts +0 -141
- package/src/__tests__/utils.test.ts +0 -81
- package/src/auth.ts +0 -46
- package/src/bench/cachly-bench.ts +0 -263
- package/src/bench/fixtures.ts +0 -256
- package/src/ckg.ts +0 -103
- package/src/confidence.ts +0 -38
- package/src/embeddings.ts +0 -217
- package/src/handlers/advanced.ts +0 -647
- package/src/handlers/brain.ts +0 -2622
- package/src/handlers/cache.ts +0 -633
- package/src/handlers/context.ts +0 -222
- package/src/handlers/fedbrain.ts +0 -1232
- package/src/handlers/instances.ts +0 -180
- package/src/handlers/roadmap.ts +0 -201
- package/src/handlers/syndicate.ts +0 -460
- package/src/handlers/tco.ts +0 -345
- package/src/handlers/team.ts +0 -1249
- package/src/index.ts +0 -2815
- package/src/namespace.ts +0 -128
- package/src/notifier.ts +0 -5
- package/src/rerank.ts +0 -148
- package/src/search.test.ts +0 -848
- package/src/search.ts +0 -1781
- package/src/tools.ts +0 -2056
- package/src/utils.ts +0 -90
- package/test-features.cjs +0 -23
- package/tsconfig.json +0 -16
- package/vitest.config.ts +0 -14
package/CHANGELOG.md
DELETED
|
@@ -1,653 +0,0 @@
|
|
|
1
|
-
# Changelog – cachly SDK (mcp)
|
|
2
|
-
|
|
3
|
-
**Language:** MCP (Model Context Protocol)
|
|
4
|
-
**Package:** `@cachly-dev/mcp-server` on **npm**
|
|
5
|
-
|
|
6
|
-
> Full cross-SDK release notes: [../CHANGELOG.md](../CHANGELOG.md)
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## [0.10.65] – 2026-05-29
|
|
11
|
-
|
|
12
|
-
### Flat-file head-to-head in the benchmark (the proof gets honest)
|
|
13
|
-
|
|
14
|
-
- **Cachly-Bench now compares three rankers**, not two: a `flatfile` ranker
|
|
15
|
-
(naive term-overlap, no IDF, no length norm, **no quality signal**, recency
|
|
16
|
-
tiebreak) joins the BM25 `baseline` and `cachly`. The flat-file ranker is an
|
|
17
|
-
honest — in fact *charitable* — stand-in for "an LLM reading its own memory files."
|
|
18
|
-
- **Result:** cachly wins the metrics an agent depends on — **Precision@1 +10.0 %,
|
|
19
|
-
MRR +4.4 % vs. flat-file** (and +22.2 % / +10.9 % vs. BM25). The report and BENCH.md
|
|
20
|
-
are honest about *why* flat-file's Precision@3 / Recall@3 look higher (it ranks the
|
|
21
|
-
whole corpus; we did not rig that away).
|
|
22
|
-
- **CI-defended:** a new regression test asserts cachly ≥ flat-file on Precision@1
|
|
23
|
-
and MRR, and that the flat-file simulation isn't trivially weak (MRR > 0.5).
|
|
24
|
-
|
|
25
|
-
## [0.10.64] – 2026-05-29
|
|
26
|
-
|
|
27
|
-
### The three decisive metrics, now measurable
|
|
28
|
-
|
|
29
|
-
- **`brain_metrics(instance_id)`** — new tool (101st). Reports the three metrics
|
|
30
|
-
that decide whether the Brain delivers value:
|
|
31
|
-
1. **Time-to-first-recall** — `born_at` (first learn) → `first_recall_at` (first
|
|
32
|
-
proven recall), both `SET NX` so only the first event wins.
|
|
33
|
-
2. **Recall-lift** — published Cachly-Bench headline (+22.2 % P@1), CI-defended.
|
|
34
|
-
3. **Team-knowledge-reuse** — % of proven recalls that used a *teammate's* lesson.
|
|
35
|
-
- **Cross-author reuse tracking.** `smart_recall` gains an optional `author`. When
|
|
36
|
-
you recall a lesson written by someone else, cachly increments
|
|
37
|
-
`cross_author_recalls`, records the distinct reuse pair, and surfaces a
|
|
38
|
-
"👥 Team knowledge reuse" banner inline — the value only a shared brain delivers.
|
|
39
|
-
|
|
40
|
-
## [0.10.63] – 2026-05-29
|
|
41
|
-
|
|
42
|
-
### Graceful-degradation stability
|
|
43
|
-
|
|
44
|
-
- New utilities: `withTimeout`, `scanKeys` (capped + timed-out scan), `normalizeGitPath`.
|
|
45
|
-
- `skill_gaps` / `brain_coverage` / `team_expertise_map` / `brain_file_map` now scan
|
|
46
|
-
via `scanKeys` — a huge keyspace can no longer hang the agent turn (3 s cap + key cap).
|
|
47
|
-
- `brain_from_git` normalizes git rename paths (`src/{old => new}/f.ts`) so file nodes
|
|
48
|
-
don't fragment on renames. Removed a dead person-node scan in `skill_gaps`.
|
|
49
|
-
- +13 utils tests.
|
|
50
|
-
|
|
51
|
-
## [0.10.62] – 2026-05-29
|
|
52
|
-
|
|
53
|
-
### Hardened Phase 3 tools
|
|
54
|
-
|
|
55
|
-
- `brain_who_knows`: reject empty/undefined `topic` (was crashing in `ckgSlug`); clamp `limit` to [1,50].
|
|
56
|
-
- `brain_file_map`: filter empty path strings, handle non-array input gracefully.
|
|
57
|
-
- +5 stability tests.
|
|
58
|
-
|
|
59
|
-
## [0.10.61] – 2026-05-29
|
|
60
|
-
|
|
61
|
-
### Phase 3C: 100 MCP tools milestone — zero-setup knowledge graph
|
|
62
|
-
|
|
63
|
-
- **`brain_from_git` enhanced.** Now auto-builds Person nodes + File nodes from git
|
|
64
|
-
history. Every commit that brain_from_git ingests now upserts the author as a
|
|
65
|
-
PersonNode and each changed file as a FileNode, with `authored` and `touched` CKG
|
|
66
|
-
edges. Run once and your entire org-wide knowledge graph is populated retroactively
|
|
67
|
-
— no `author` fields needed in individual `learn_from_attempts` calls.
|
|
68
|
-
The git log format is updated to `--name-only` so file attribution happens without
|
|
69
|
-
extra git subprocess calls per commit.
|
|
70
|
-
- **`skill_gaps()`** — new tool. Scans all lessons and surfaces knowledge blind spots:
|
|
71
|
-
- 🔴 **critical**: domains with ≥1 failure and 0 success lessons
|
|
72
|
-
- 🟡 **warn**: fewer failures than threshold but still unresolved
|
|
73
|
-
- 🔵 **info**: domains with ≥3 lessons but no attribution (brain_who_knows can't help)
|
|
74
|
-
Private lessons are excluded from gap analysis.
|
|
75
|
-
- **`brain_coverage()`** — new tool. Knowledge-coverage health score 0–100 based on
|
|
76
|
-
4 equally-weighted factors: lesson volume, success ratio, attribution completeness,
|
|
77
|
-
and team engagement. Also computes file coverage ratio vs `git ls-files` when run
|
|
78
|
-
inside a git repo. Use `skill_gaps` to find what to improve.
|
|
79
|
-
- **+6 tests** → 400 total.
|
|
80
|
-
- **100 MCP tools** (was 98). 🎯
|
|
81
|
-
|
|
82
|
-
## [0.10.60] – 2026-05-29
|
|
83
|
-
|
|
84
|
-
### Phase 3B: File knowledge map + team expertise overview + visibility scopes
|
|
85
|
-
|
|
86
|
-
- **`brain_file_map(file_paths=[...])`** — before touching a file, see who has
|
|
87
|
-
worked on it (from `learn_from_attempts` author+file_paths history) and which
|
|
88
|
-
lessons reference it. Experts shown with medal rankings 🥇🥈🥉 + touch count +
|
|
89
|
-
recency. Related lessons shown with outcome + severity + author badges.
|
|
90
|
-
- **`team_expertise_map()`** — full team skills matrix as a markdown table:
|
|
91
|
-
contributor · lesson count · top domains · last active. Zero setup: auto-built
|
|
92
|
-
from `author` fields. Useful for onboarding and knowledge-gap detection.
|
|
93
|
-
- **`visibility: "private" | "team" | "public"`** on `learn_from_attempts`:
|
|
94
|
-
`private` lessons are never surfaced in `smart_recall` or team views — only
|
|
95
|
-
accessible via exact `recall_best_solution(topic=...)`. Default remains `"team"`.
|
|
96
|
-
- **Resilient `smart_recall`**: `apiFetch` for instance info now has a null guard
|
|
97
|
-
so semantic search degrades gracefully when API is unreachable.
|
|
98
|
-
- **+8 tests** covering visibility storage, private filtering in smart_recall,
|
|
99
|
-
brain_file_map expert attribution, and team_expertise_map → 394 total.
|
|
100
|
-
- **98 MCP tools** (was 96).
|
|
101
|
-
|
|
102
|
-
## [0.10.59] – 2026-05-29
|
|
103
|
-
|
|
104
|
-
### Phase 3A: Org-wide knowledge graph — "Who Knows What?"
|
|
105
|
-
|
|
106
|
-
- **`brain_who_knows(topic="...")`** — new tool (96th). Queries the org-wide
|
|
107
|
-
knowledge graph to find your team's top experts on any topic. Returns a ranked
|
|
108
|
-
list with lesson count, confidence %, primary domains, and last-active recency.
|
|
109
|
-
Medal rankings: 🥇 🥈 🥉 for top 3.
|
|
110
|
-
- **Person nodes auto-built.** Every `learn_from_attempts(author="name", ...)` call
|
|
111
|
-
now upserts a `PersonNode` in the CKG and creates an `authored` edge from the
|
|
112
|
-
person to the lesson concept. No extra setup needed.
|
|
113
|
-
- **File nodes auto-built.** `file_paths` in `learn_from_attempts` upsert `FileNode`
|
|
114
|
-
entries + `touched` edges from the author → file. Enables future "who worked on X
|
|
115
|
-
file?" queries.
|
|
116
|
-
- **Author attribution in `smart_recall`.** Results now show `👤 author-handle`
|
|
117
|
-
inline whenever the matched lesson carries an author field.
|
|
118
|
-
- **`+7` tests** covering `ckgUpsertPersonNode`, `ckgUpsertFileNode`, and the full
|
|
119
|
-
`brain_who_knows` flow including ranking order correctness.
|
|
120
|
-
- **96 MCP tools** (was 95).
|
|
121
|
-
|
|
122
|
-
## [0.10.58] – 2026-05-29
|
|
123
|
-
|
|
124
|
-
### Zero lint warnings
|
|
125
|
-
|
|
126
|
-
- Systematic unused-import cleanup across all handler files and index.ts
|
|
127
|
-
- ESLint exits clean: 0 errors, 0 warnings
|
|
128
|
-
- `eslint.config.js`: added `varsIgnorePattern: '^_'`
|
|
129
|
-
|
|
130
|
-
## [0.10.57] – 2026-05-29
|
|
131
|
-
|
|
132
|
-
### Critical: fixed broken npm entry point + version hygiene
|
|
133
|
-
|
|
134
|
-
- **Fixed the package entry point.** When the shared `telegram-notify` package was
|
|
135
|
-
added to the TypeScript build, tsc began emitting to `dist/src/index.js`, but
|
|
136
|
-
`bin`/`main`/`start` still pointed at `dist/index.js`. Versions **0.10.50–0.10.52
|
|
137
|
-
shipped a non-existent entry point** (`npx @cachly-dev/mcp-server` failed). All
|
|
138
|
-
paths now correctly point to `dist/src/index.js`, verified by running the built
|
|
139
|
-
binary.
|
|
140
|
-
- **Version re-sync.** `package.json`, `server.json` (MCP registry manifest, was
|
|
141
|
-
stuck at 0.10.23), `package-lock.json` (was 0.10.49), and `MCP_VERSION` are now
|
|
142
|
-
all `0.10.57`. Bumped ahead of the previously published 0.10.55/0.10.56 so
|
|
143
|
-
`latest` points forward again instead of regressing to 0.10.52.
|
|
144
|
-
- **Accurate tool count (95).** README badge, `server.json`, `package.json`, and CLI
|
|
145
|
-
banners claimed 80/89 tools; corrected to the actual 95.
|
|
146
|
-
|
|
147
|
-
## [0.10.52] – 2026-05-29
|
|
148
|
-
|
|
149
|
-
- `smart_recall`: CKG traversal as a 3rd retrieval signal — surfaces lessons that
|
|
150
|
-
*fixed* causal-graph-similar problems even when vocabulary differs (🕸️ badge).
|
|
151
|
-
- Cachly-Bench corpus expanded with a governance adversarial pair; headline lift
|
|
152
|
-
rose to **Precision@1 +22.2%, MRR +10.9%**.
|
|
153
|
-
|
|
154
|
-
## [0.10.51] – 2026-05-29
|
|
155
|
-
|
|
156
|
-
- `team_confirm`: human review (🛡️ senior / ✔️ peer) raises a lesson's recall
|
|
157
|
-
ranking — confirmed knowledge outranks unreviewed auto-learned entries.
|
|
158
|
-
|
|
159
|
-
## [0.10.50] – 2026-05-29
|
|
160
|
-
|
|
161
|
-
- `smart_recall`: unified keyword + semantic results into one hybrid-ranked list.
|
|
162
|
-
- "Brain saved you here" banner surfaces estimated time saved per proven recall.
|
|
163
|
-
|
|
164
|
-
## [0.10.49] – 2026-05-29
|
|
165
|
-
|
|
166
|
-
- Persist JWT after device flow (telemetry showed zero authenticated calls after
|
|
167
|
-
restarts). Quality-aware reranking + Cachly-Bench (the moat proof) introduced.
|
|
168
|
-
|
|
169
|
-
> Note: 0.10.39–0.10.48 and 0.10.53–0.10.56 were interim/parallel publishes; see
|
|
170
|
-
> git history for details. 0.10.57 supersedes all of them.
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
## [0.10.38] – 2026-05-25
|
|
175
|
-
|
|
176
|
-
### `cachly status` — Brain health at a glance
|
|
177
|
-
|
|
178
|
-
- New CLI command `npx @cachly-dev/mcp-server@latest status`: shows lessons, recalls, quality score, Brain level, team contributors (with count), and your personal invite link — all in one terminal card.
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
## [0.10.37] – 2026-05-25
|
|
183
|
-
|
|
184
|
-
### Viral wow moments — invite link + first-recall tweet button
|
|
185
|
-
|
|
186
|
-
- **`cachly invite` fixed** — previously called a non-existent `/api/v1/team/invite` endpoint (always 404). Now calls `GET /api/v1/referral/me` and shows your personal referral link with pre-written Slack DM + tweet text. One command = shareable invite.
|
|
187
|
-
- **First-recall email** — the "Your AI just remembered" email now includes a one-click `𝕏 Share this moment` tweet button and a `🤝 Share with your team` section with your personal referral link (shows only if referral code exists). The highest-value wow moment now has a viral exit.
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## [0.10.36] – 2026-05-25
|
|
192
|
-
|
|
193
|
-
### ESLint flat-config (ESLint 10 / v9 API)
|
|
194
|
-
|
|
195
|
-
- Added `eslint` v9 and `typescript-eslint` v8 as devDependencies.
|
|
196
|
-
- Created `eslint.config.js` using ESLint flat-config API — replaces the legacy `--ext .ts` syntax that broke with ESLint 10.
|
|
197
|
-
- Updated lint script: `eslint src --ext .ts` → `eslint src`.
|
|
198
|
-
- Rules: `no-explicit-any` warn, `no-unused-vars` warns but ignores `_`-prefixed params.
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
## [0.10.35] – 2026-05-25
|
|
203
|
-
|
|
204
|
-
### Docs catch-up
|
|
205
|
-
|
|
206
|
-
- Backfilled CHANGELOG entries for 0.10.25–0.10.34 (they were missing).
|
|
207
|
-
- README now documents the `index` and `learn-git` CLI commands plus the PR-merge auto-learn GitHub Action tip.
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
## [0.10.34] – 2026-05-25
|
|
212
|
-
|
|
213
|
-
### `learn-git` CLI — auto-learn from commits (PR-merge ready)
|
|
214
|
-
|
|
215
|
-
- New command `npx @cachly-dev/mcp-server learn-git [./repo] [--max-commits N]` runs `brain_from_git` over recent commits and fires the `brain_from_git` telemetry event. Building block for PR-merge auto-learning in CI.
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
## [0.10.33] – 2026-05-25
|
|
220
|
-
|
|
221
|
-
### Close the setup funnel
|
|
222
|
-
|
|
223
|
-
- The setup wizard now fires `setup_completed` at the end of a successful run (with `instance_id` + JWT attribution), so the onboarding funnel `setup_started → setup_completed` is finally traceable.
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## [0.10.32] – 2026-05-25
|
|
228
|
-
|
|
229
|
-
### Viral moments: shareable digest card + team first-briefing
|
|
230
|
-
|
|
231
|
-
- `cachly digest` now prints a tweet-ready card with a pre-filled X/Twitter URL (lessons, recalls, tokens saved, top lesson, brain level).
|
|
232
|
-
- **Team-virality**: when `session_start` runs for a user who has lessons from teammates but has never seen them, a one-time "Your team's AI brain has been briefing you" section surfaces exactly which teammate solved what.
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## [0.10.31] – 2026-05-25
|
|
237
|
-
|
|
238
|
-
### Unblock npm publish — tests green
|
|
239
|
-
|
|
240
|
-
- `vitest.config.ts` excludes `**/__tests__/e2e/**` from the unit-test suite (E2E tests require live credentials and were failing CI, blocking every publish since 0.10.27).
|
|
241
|
-
- CLI with no args now writes the setup banner to **stdout** and exits 0 (was stderr + exit 1, invisible to callers).
|
|
242
|
-
- `process.exit(0)` guarded with an `_isMain` check so importing modules never trigger early exit.
|
|
243
|
-
|
|
244
|
-
---
|
|
245
|
-
|
|
246
|
-
## [0.10.30] – 2026-05-24
|
|
247
|
-
|
|
248
|
-
### CLAUDE.md delivers a visible briefing
|
|
249
|
-
|
|
250
|
-
- CLAUDE.md template now calls `session_start` (with `workspace_path`) as the first action of every conversation and `session_end` as the last, so the brain briefing is visible to the user instead of running silently.
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
## [0.10.29] – 2026-05-24
|
|
255
|
-
|
|
256
|
-
### Fix: recall counting + git bootstrap actually fires
|
|
257
|
-
|
|
258
|
-
- `smart_recall` (the primary recall tool in CLAUDE.md) now also fires `recall_best_solution` when it returns lessons, so `BrainRecallCount` reflects real usage.
|
|
259
|
-
- Auto-session-start now passes `process.cwd()` as `workspace_path` so the git auto-bootstrap introduced in 0.10.28 actually triggers.
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
## [0.10.28] – 2026-05-24
|
|
264
|
-
|
|
265
|
-
### Auto-bootstrap the brain from git on first session
|
|
266
|
-
|
|
267
|
-
- On a first session with a `workspace_path`, `brain_from_git` runs automatically and its summary is appended inline to the `session_start` briefing — the brain learns from your repo history with zero setup.
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
## [0.10.27] – 2026-05-24
|
|
272
|
-
|
|
273
|
-
### Fix: session_start counts as a recall
|
|
274
|
-
|
|
275
|
-
- `session_start` now fires `recall_best_solution` when the brain has lessons (not the first-session welcome), so the dashboard activation nudge clears and the first-recall email fires for active users.
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
## [0.10.26] – 2026-05-14
|
|
280
|
-
|
|
281
|
-
### Fix: brain_from_git + brain_predict telemetry
|
|
282
|
-
|
|
283
|
-
- `brain_from_git` and `brain_predict` telemetry events were dead code paths and never fired; both now correctly send per-tool telemetry.
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
## [0.10.25] – 2026-05-14
|
|
288
|
-
|
|
289
|
-
### Per-tool telemetry events for all brain tools
|
|
290
|
-
|
|
291
|
-
- Every brain tool (`session_start`, `session_end`, `learn_from_attempts`, `smart_recall`, `recall_best_solution`) now emits a dedicated telemetry event for accurate funnel + report breakdowns.
|
|
292
|
-
|
|
293
|
-
---
|
|
294
|
-
|
|
295
|
-
## [0.10.24] – 2026-05-14
|
|
296
|
-
|
|
297
|
-
### Funnel visibility + server.json version sync
|
|
298
|
-
|
|
299
|
-
- `first_call_success` now includes `instance_id` for full per-tenant attribution in the `mcp_events` table.
|
|
300
|
-
- `server.json` version bumped to 0.10.24 — Smithery and MCP directory indexes now show the current version.
|
|
301
|
-
|
|
302
|
-
---
|
|
303
|
-
|
|
304
|
-
## [0.10.23] – 2026-05-14
|
|
305
|
-
|
|
306
|
-
### Full activation funnel + UTM tracking
|
|
307
|
-
|
|
308
|
-
- **`sendFunnelEvent` carries JWT**: all funnel events (`setup_started`, `device_flow_completed`, `first_call_success`) now include the JWT so the backend can resolve them to a tenant. Activation funnel is now fully attributable per user.
|
|
309
|
-
- **`cachly share` UTM link**: the generated tweet now includes `https://cachly.dev?ref=share&utm_source=x&utm_medium=social&utm_campaign=cli-share` so shares can be traced back to new signups.
|
|
310
|
-
|
|
311
|
-
---
|
|
312
|
-
|
|
313
|
-
## [0.10.22] – 2026-05-14
|
|
314
|
-
|
|
315
|
-
### Activation telemetry, health Redis ping, join backup
|
|
316
|
-
|
|
317
|
-
- **`first_call_success` telemetry**: fires once per process on the first successful brain/context tool call. Combined with `setup_started → device_flow_completed → first_call_success`, the full activation funnel is now visible.
|
|
318
|
-
- **`cachly health` Redis PING**: section 3 now opens an actual Redis connection and sends `PING` — verifies end-to-end connectivity, not just instance metadata.
|
|
319
|
-
- **`cachly join` corrupt JSON**: backs up corrupted config files to `.bak` before overwriting, matching the `mergeMcpConfig` behavior.
|
|
320
|
-
|
|
321
|
-
---
|
|
322
|
-
|
|
323
|
-
## [0.10.21] – 2026-05-14
|
|
324
|
-
|
|
325
|
-
### Stability hardening — corrupt configs, silent auth failures, upgrade validation
|
|
326
|
-
|
|
327
|
-
- **`mergeMcpConfig` corrupt JSON**: instead of silently overwriting, backs up the corrupted file to `.bak` and prints a warning so the user knows their previous config was preserved.
|
|
328
|
-
- **`getConnection` auth failure**: if the `/connection` endpoint returns 401/403, throws an actionable "run `cachly setup` to refresh credentials" error instead of silently attempting a password-less Redis connect that fails with cryptic `NOAUTH`.
|
|
329
|
-
- **`upgrade` version validation**: validates that the npm registry response contains a valid semver string before comparing — prevents false "update available" from a malformed registry response.
|
|
330
|
-
|
|
331
|
-
---
|
|
332
|
-
|
|
333
|
-
## [0.10.20] – 2026-05-14
|
|
334
|
-
|
|
335
|
-
### Edge case hardening — silent failures eliminated
|
|
336
|
-
|
|
337
|
-
- **`getConnection` status messages**: `failed`, `suspended`, and `pending_payment` now each get a specific actionable message instead of the generic "not reachable" fallback. Users know exactly what happened and where to go to fix it.
|
|
338
|
-
- **`setup` write errors**: config file write failures now print a clear warning with the OS error and a recovery hint instead of silently succeeding.
|
|
339
|
-
- **`join` write errors**: permission and unexpected filesystem errors are surfaced per-file instead of silently swallowed. Expected "editor not installed" cases are still quiet.
|
|
340
|
-
- **Auto-provision telemetry**: if free-tier auto-provision returns a non-2xx response, a `auto_provision_failed` telemetry event fires so the team can detect new-user activation failures in real time.
|
|
341
|
-
|
|
342
|
-
---
|
|
343
|
-
|
|
344
|
-
## [0.10.19] – 2026-05-14
|
|
345
|
-
|
|
346
|
-
### Fix: accurate provisioning time estimate
|
|
347
|
-
|
|
348
|
-
- `getConnection` no longer says "30 seconds" — the message now correctly says "1–3 minutes" for first-time provisioning. This prevents users from thinking their instance failed just because the first tool call waited 25 s and still saw `provisioning`.
|
|
349
|
-
- Dashboard instance detail page provisioning banner updated to match ("1–3 minutes" instead of "under 60 seconds").
|
|
350
|
-
|
|
351
|
-
---
|
|
352
|
-
|
|
353
|
-
## [0.10.17] – 2026-05-14
|
|
354
|
-
|
|
355
|
-
### `cachly upgrade` — check for newer versions
|
|
356
|
-
|
|
357
|
-
- **`cachly upgrade`** — fetches the latest version from the npm registry and compares with the running version. If outdated, shows current vs. latest and the one-liner to update (`npx @cachly-dev/mcp-server@latest setup`). No auth required.
|
|
358
|
-
- Added `upgrade` to no-auth bypass list and splash screen.
|
|
359
|
-
|
|
360
|
-
### Dashboard — Brain Badge widget
|
|
361
|
-
|
|
362
|
-
- Instance detail page now shows a live badge preview + copy-ready Markdown and HTML snippets directly in the dashboard. No CLI needed.
|
|
363
|
-
- Badge renders as `` — one click to copy.
|
|
364
|
-
|
|
365
|
-
---
|
|
366
|
-
|
|
367
|
-
## [0.10.16] – 2026-05-14
|
|
368
|
-
|
|
369
|
-
### `cachly join` — accept a Brain invite in one command
|
|
370
|
-
|
|
371
|
-
- **`cachly join <token>`** — the missing half of the invite loop. Accepts a shared Brain invite link:
|
|
372
|
-
1. Fetches invite info (public, no auth) — shows Brain name, tier, expiry
|
|
373
|
-
2. Prompts for confirmation
|
|
374
|
-
3. If no JWT: starts Device Flow sign-in (browser, 10 s)
|
|
375
|
-
4. Writes `CACHLY_BRAIN_INSTANCE_ID` into every detected editor MCP config (`.mcp.json`, `.cursor/mcp.json`, `.windsurf/mcp.json`, `.vscode/mcp.json`, `~/.claude/mcp.json`)
|
|
376
|
-
5. Suggests `cachly badge` as next step
|
|
377
|
-
- Added `join` to no-auth bypass list
|
|
378
|
-
- Splash screen updated to list `join` command
|
|
379
|
-
|
|
380
|
-
### MCP Directory metadata
|
|
381
|
-
|
|
382
|
-
- **`smithery.yaml`** — added `name` + `description` block for Smithery listing quality
|
|
383
|
-
- **`glama.json`** — added keywords: `cline`, `zed`, `brain-from-git`, `failure-prediction`, `memory-crystals`, `readme-badge`, `incremental-learning`
|
|
384
|
-
- **`server.json`** — version bumped to `0.10.15`
|
|
385
|
-
|
|
386
|
-
---
|
|
387
|
-
|
|
388
|
-
## [0.10.15] – 2026-05-14
|
|
389
|
-
|
|
390
|
-
### Brain Badge
|
|
391
|
-
|
|
392
|
-
- **`cachly badge`** — new CLI command that outputs the Markdown + HTML snippet for embedding a live lesson-count badge in any README or website. Badge SVG served by `GET /api/v1/badge/:instanceId` (public, no auth, rate-limited 30 req/min, result cached 1 h in instance Valkey). Badge shows lesson count only — no topic names or content.
|
|
393
|
-
- **Setup CTA** — both setup flows now print `npx ... badge` as the next suggested action after successful configuration.
|
|
394
|
-
- **README** — Brain Badge section added with copy-paste Markdown snippet and explanation. Badge shield added to header.
|
|
395
|
-
|
|
396
|
-
---
|
|
397
|
-
|
|
398
|
-
## [0.10.8] – 2026-05-14
|
|
399
|
-
|
|
400
|
-
### Viral CLI — 6 new commands
|
|
401
|
-
|
|
402
|
-
- **`cachly demo`** — zero-signup Brain preview. Reads local `.git/` history, classifies commits by type (fix/feat/security/deploy/refactor/perf), and renders an ASCII table showing commit count, date range, contributors, per-category bar charts, and sample security + bug-fix lessons. No account or token required — works before any sign-in.
|
|
403
|
-
|
|
404
|
-
- **`cachly share`** — shareable ASCII stats card. Fetches live Brain stats (lessons, recalls, tokens/cost saved, Brain level) and generates a tweet-ready text block with `#AIMemory #ClaudeCode #Cursor` hashtags. Requires `CACHLY_JWT`.
|
|
405
|
-
|
|
406
|
-
- **`cachly digest`** — weekly Brain summary. Displays a formatted summary table: lessons stored, recalls performed, tokens saved, estimated cost saved, Brain level, top team contributors, and top-recalled lessons. Includes a crontab snippet for automated Monday morning delivery. Requires `CACHLY_JWT`.
|
|
407
|
-
|
|
408
|
-
- **`cachly invite [email]`** — team referral. Accepts an email address as argument or via interactive prompt, then POSTs to `/api/v1/team/invite`. Handles 409 (already a member) gracefully. Requires `CACHLY_JWT`.
|
|
409
|
-
|
|
410
|
-
- **`cachly health`** — connection check. Validates JWT (decode + expiry), tests API reachability, checks Brain instance status, scans all editor MCP config files (Claude Code, Cursor, Windsurf, VS Code, Zed, Continue), and verifies the git post-commit hook. Exits 1 if any checks fail — CI-friendly.
|
|
411
|
-
|
|
412
|
-
- **No-args splash screen** — running `npx @cachly-dev/mcp-server@latest` in a TTY now shows a violet-framed help card listing all commands instead of silently starting the MCP server.
|
|
413
|
-
|
|
414
|
-
### brain_from_git — Incremental mode + progress feedback
|
|
415
|
-
|
|
416
|
-
- **Incremental by default** — after the first full run, subsequent calls only process commits since the last ingested SHA (stored in Redis with 90-day TTL). Repeated calls on active repos are near-instant.
|
|
417
|
-
- **Progress output** — reports progress to stderr every ~10% of commits (`⏳ Processing N/total…`) and prints a completion summary (`✅ brain_from_git complete: N/total commits ingested`).
|
|
418
|
-
- New `incremental` boolean parameter (default `true`). Pass `false` to force a full reprocess.
|
|
419
|
-
|
|
420
|
-
### README
|
|
421
|
-
|
|
422
|
-
- Complete rewrite: `cachly demo` featured at the very top with embedded ASCII preview output, all 6 CLI commands documented, Zed manual-setup section added, competitor table updated, FAQ expanded with incremental `brain_from_git` Q&A.
|
|
423
|
-
|
|
424
|
-
---
|
|
425
|
-
|
|
426
|
-
## [0.10.0] – 2026-05-08
|
|
427
|
-
|
|
428
|
-
### Zero-Friction Onboarding
|
|
429
|
-
|
|
430
|
-
- **Global Claude Code config** — `setup` now writes `~/.claude/mcp.json` (global) in addition to project-level `.mcp.json`. cachly is available in every Claude Code project after running setup once — no per-project re-configuration needed. Existing MCP servers in the global config are preserved (merge, not overwrite).
|
|
431
|
-
|
|
432
|
-
- **Device Flow authentication** — No credentials required in MCP config. On the first tool call without a `CACHLY_JWT`, the server starts an OAuth Device Flow: the AI shows a one-click sign-in URL in chat, polls for completion, exchanges the token for a long-lived API key, and auto-provisions a Brain instance. Fully transparent to the user.
|
|
433
|
-
|
|
434
|
-
- **Fully automatic sessions** — `session_start` and `session_end` are called automatically (on first tool call and on SIGTERM). Users never need to call them manually.
|
|
435
|
-
|
|
436
|
-
- **Auto project indexing** — On session start, the project is indexed in the background if the last index is older than 24 hours. Zero extra calls.
|
|
437
|
-
|
|
438
|
-
### CLAUDE.md Rules — Mandatory Brain Behavior
|
|
439
|
-
|
|
440
|
-
The CLAUDE.md block written by `setup` now instructs the AI with binding rules (not suggestions):
|
|
441
|
-
|
|
442
|
-
- `smart_recall` before every task
|
|
443
|
-
- `causal_trace` before grepping/reading files when debugging
|
|
444
|
-
- `brain_predict` before deploys, migrations, and dependency upgrades
|
|
445
|
-
- `remember_context` before editing any file (WIP registry)
|
|
446
|
-
- `learn_from_attempts` after every fix, deploy, or discovery
|
|
447
|
-
|
|
448
|
-
### SEO & Search AI Optimization
|
|
449
|
-
|
|
450
|
-
- **`llms.txt`** added — AI crawler standard file with complete tool catalog (89 tools + descriptions), competitor comparison, architecture overview. Indexed by Perplexity, ChatGPT Search, Claude web search.
|
|
451
|
-
- **README** — FAQ section, competitor table (cachly vs mem0 vs MemGPT vs CLAUDE.md), `autopilot` tool documented prominently.
|
|
452
|
-
- **GitHub topics** set: `mcp`, `mcp-server`, `ai-memory`, `persistent-memory`, `claude-code`, `cursor`, `github-copilot`, `causal-trace`, `developer-tools`, `typescript`.
|
|
453
|
-
- **package.json** — description and keywords updated: `causal-trace`, `root-cause-analysis`, `failure-prediction`, `long-term-memory`, `llm-memory`, `claude-code-memory`.
|
|
454
|
-
|
|
455
|
-
### Auth Module
|
|
456
|
-
|
|
457
|
-
- `jwtExpiryMs`, `checkJwt`, `handleApiError` extracted from `index.ts` into `src/auth.ts`
|
|
458
|
-
- 23 unit tests added for auth module (Vitest)
|
|
459
|
-
- Publish workflow now runs tests before building
|
|
460
|
-
|
|
461
|
-
### Bug Fixes
|
|
462
|
-
|
|
463
|
-
- `safeJsonParse` applied to all `JSON.parse` calls in `advanced.ts` and `syndicate.ts`
|
|
464
|
-
- Removed dead warm-up code
|
|
465
|
-
|
|
466
|
-
---
|
|
467
|
-
|
|
468
|
-
## [0.9.3] – 2026-05-06
|
|
469
|
-
|
|
470
|
-
### 🧠 10x Vision Phase 2 — Layers 3, 5 & 6
|
|
471
|
-
|
|
472
|
-
#### Layer 3 — Multi-Agent Deliberation Chamber (MADC)
|
|
473
|
-
|
|
474
|
-
New tool: **`madc_deliberate`** — When conflicting lessons exist for a topic, run deliberation between 6 specialist expert agents (InfraAgent, AuthAgent, DeployAgent, DatabaseAgent, DebugAgent, APIAgent). Each agent votes based on its CKG domain coverage. Unanimous → loser superseded. Split → contested flag. Resolutions stored as permanent CKG nodes.
|
|
475
|
-
|
|
476
|
-
Auto-trigger: `learn_from_attempts` now detects contradictions, writes a `contradicts` CKG edge, and suggests `madc_deliberate` automatically.
|
|
477
|
-
|
|
478
|
-
#### Layer 5 — Continuous Learning Stream (CLS)
|
|
479
|
-
|
|
480
|
-
Two new tools for learning **without `session_end`**:
|
|
481
|
-
|
|
482
|
-
- **`cls_ingest`** — Ingest learning signals from 3 sources: `git_commit` (commit message + files → CKG edges + lesson), `ci_outcome` (green after red → confirmed fix at 75% confidence), `ide_diagnostic` (compiler error + fix pair → instant lesson + CKG `fixes` edge).
|
|
483
|
-
|
|
484
|
-
- **`cls_install_hooks`** — Outputs a ready-to-paste git post-commit hook + GitHub Actions step. Once installed: every commit and CI run feeds the brain automatically. Zero `session_end` required.
|
|
485
|
-
|
|
486
|
-
#### Layer 6 — Federation Protocol (FedBrain)
|
|
487
|
-
|
|
488
|
-
Four new tools for AI-to-AI knowledge transfer with cryptographic provenance:
|
|
489
|
-
|
|
490
|
-
- **`fedbrain_contribute`** — Contribute a lesson to the global commons with a HMAC-signed knowledge certificate (domain fingerprint + confidence + outcome chain hash).
|
|
491
|
-
|
|
492
|
-
- **`fedbrain_search`** — Context-weighted search: your domain fingerprint (from contributed lessons + `context_hints`) weights results from brains with matching tech stacks higher. Shows Gold Standard badges (10+ confirms).
|
|
493
|
-
|
|
494
|
-
- **`fedbrain_confirm`** — Confirm that a syndicated lesson worked. Propagates back to global commons (increments `confirm_count`). Updates local CKG confidence. At 10 independent confirmations → 🏆 Gold Standard.
|
|
495
|
-
|
|
496
|
-
- **`fedbrain_status`** — Dashboard: contributed lessons, confirm history, Gold Standard count, pending propagations.
|
|
497
|
-
|
|
498
|
-
#### Summary
|
|
499
|
-
|
|
500
|
-
| Layer | Tool(s) | What it does |
|
|
501
|
-
|-------|---------|--------------|
|
|
502
|
-
| 3 (MADC) | `madc_deliberate` | Expert agent voting on contradicting beliefs |
|
|
503
|
-
| 5 (CLS) | `cls_ingest`, `cls_install_hooks` | Continuous learning without session_end |
|
|
504
|
-
| 6 (FedBrain) | `fedbrain_contribute`, `fedbrain_search`, `fedbrain_confirm`, `fedbrain_status` | Federated knowledge with crypto certificates |
|
|
505
|
-
|
|
506
|
-
Total tools: **63** (was 54 in v0.9.2)
|
|
507
|
-
|
|
508
|
-
---
|
|
509
|
-
|
|
510
|
-
## [0.9.2] – 2026-05-06
|
|
511
|
-
|
|
512
|
-
### 🧠 10x Vision Phase 1 — Layers 1, 2, 4 & 7
|
|
513
|
-
|
|
514
|
-
- **Layer 1 (CKG):** Redis-backed Causal Knowledge Graph. Typed edges: `fixes`, `requires`, `co-occurs`, `causes`, `contradicts`.
|
|
515
|
-
- **Layer 2 (BUE):** `learn_from_attempts` now writes CKG edges with Bayesian confidence `(s+1)/(t+2)`.
|
|
516
|
-
- **Layer 4 (PPE):** `brain_predict` — CKG traversal + text fallback for failure prediction.
|
|
517
|
-
- **Layer 7 (MCM):** Domain coverage map in `session_start` with confidence bars.
|
|
518
|
-
- New: `brain_search` (BM25+ over all brain data), `ckg_inspect` (BFS with confidence bars).
|
|
519
|
-
- `causal_trace` upgraded: CKG graph-first, text similarity fallback.
|
|
520
|
-
|
|
521
|
-
---
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
### 🌐 Knowledge Syndication — The Global AI Brain
|
|
526
|
-
|
|
527
|
-
The first collective intelligence layer for AI memory.
|
|
528
|
-
Every instance contributes. Every instance learns. Privacy-preserving by design.
|
|
529
|
-
|
|
530
|
-
#### New Tools
|
|
531
|
-
|
|
532
|
-
- **`syndicate`** — Contribute a verified lesson to the **global Knowledge Commons**. Your identity is a one-way HMAC hash — completely anonymous. The lesson is immediately searchable by every other AI brain on the planet. Call this after any `learn_from_attempts` that is worth sharing: critical bugs, deployment gotchas, architecture discoveries. This is how individual knowledge becomes collective intelligence.
|
|
533
|
-
|
|
534
|
-
- **`syndicate_search`** — Search the **global Knowledge Commons** for solutions discovered by the entire community. Results ranked by `confirm_count` (trust score) then recency. Use this *before* debugging any unknown issue — someone in the global brain likely solved it already. Returns: topic, what worked, what failed, trust bar `████████░░ ×47`.
|
|
535
|
-
|
|
536
|
-
#### Privacy Design
|
|
537
|
-
- Contributors identified only by HMAC-SHA256 of user_id — irreversible, not linkable to any identity
|
|
538
|
-
- Absolute file paths stripped from all content before storage
|
|
539
|
-
- Community flagging: lessons with 3+ flags are hidden globally
|
|
540
|
-
- Trust scoring: `confirm_count` rises as independent instances verify a lesson works
|
|
541
|
-
|
|
542
|
-
---
|
|
543
|
-
|
|
544
|
-
## [0.6.1] – 2026-05-04
|
|
545
|
-
|
|
546
|
-
### 🧠 Cognitive Cache — v0.6 Major Feature
|
|
547
|
-
|
|
548
|
-
The first AI Memory system with **reasoning over its own knowledge**. No other cache has ever done this.
|
|
549
|
-
|
|
550
|
-
#### New Tools
|
|
551
|
-
|
|
552
|
-
- **`memory_consolidate`** — Weekly garbage collector for your AI Brain. Detects contradictions (same topic, different outcomes), merges duplicate lesson clusters, flags stale entries (0 recalls in N days). Like `git gc` for knowledge. Returns a full consolidation report with before/after counts.
|
|
553
|
-
|
|
554
|
-
- **`brain_diff`** — `git log` for your AI Brain. Shows exactly what changed since a given time window (`"7d"`, `"30d"`, ISO-8601). New lessons, updated lessons, recalled lessons. Perfect for weekly reviews: *"What did my AI learn this week?"*
|
|
555
|
-
|
|
556
|
-
- **`causal_trace`** — Root Cause Analysis through memory. Given a problem description, scores all lessons by relevance, reconstructs the failure chain (root → intermediate → symptom), and surfaces the exact solution that worked before. *"auth breaks after restart"* → root: `k8s:namespace-terminating` → via: `keycloak:jwks-race` → fix: `PollUntilContextTimeout 3min`. No other system can do this.
|
|
557
|
-
|
|
558
|
-
- **`knowledge_decay`** — Confidence scoring per lesson. Age × recall-frequency × outcome = decay score (0–100%). Visual bars: `████░░░░░░ 40%`. Lessons recalled recently score high; 90-day-old untouched lessons score low. Run before a big refactor to know which knowledge to trust.
|
|
559
|
-
|
|
560
|
-
- **`autopilot`** — Generates a `CLAUDE.md` / `copilot-instructions.md` that turns any AI (Claude, Cursor, Copilot, Windsurf, Gemini) into a self-managing Brain operator. No manual `session_start`, `learn_from_attempts`, or `session_end` calls ever again. One command. Every AI. Forever.
|
|
561
|
-
|
|
562
|
-
---
|
|
563
|
-
|
|
564
|
-
## [0.5.80] – 2026-05-01
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
### Added
|
|
569
|
-
|
|
570
|
-
- **RTL language support (Arabic, Hebrew)** — word-level tokenization with Unicode ranges U+0590–U+05FF (Hebrew) and U+0600–U+06FF (Arabic); Arabic light stemmer strips definite article `ال` and single-char prefix particles (`و`,`ب`,`ل`,`ف`,`ك`)
|
|
571
|
-
- **Arabic and Hebrew stopwords** — ~60 high-frequency function words per language added to the STOPWORDS set
|
|
572
|
-
- **Romanization matching** — katakana segments now additionally emit Hepburn romaji tokens at index time (e.g. `デプロイ` → `depuroi`), so users can query Japanese docs using romaji
|
|
573
|
-
- **Full katakana→romaji converter** — handles digraphs (シャ→sha, チェ→che, ファ→fa), voiced consonants, geminate consonants (ッ), long vowel marks (ー), and loanword combinations
|
|
574
|
-
- **Cross-language retrieval** — 130+ tech term synonyms spanning EN↔JA↔ZH↔KO↔AR↔HE; searching `deploy` now finds docs containing `デプロイ`, `部署`, `배포` and vice versa; applies bidirectionally at tokenize time (zero runtime overhead)
|
|
575
|
-
- **73 unit tests** all passing — new test suites for `katakanaToRomaji`, `arabicLightStem`, `expandCrossLingual`, RTL tokenization, and cross-lingual expansion
|
|
576
|
-
|
|
577
|
-
---
|
|
578
|
-
|
|
579
|
-
## [0.5.36] – 2026-04-22
|
|
580
|
-
|
|
581
|
-
### Added
|
|
582
|
-
|
|
583
|
-
- **Roadmap tools** — `roadmap_add`, `roadmap_update`, `roadmap_list`, `roadmap_next` for persistent project planning inside the Brain
|
|
584
|
-
- `session_start` now shows open roadmap items automatically
|
|
585
|
-
|
|
586
|
-
---
|
|
587
|
-
|
|
588
|
-
## [0.5.35] – 2026-04-20
|
|
589
|
-
|
|
590
|
-
### Added
|
|
591
|
-
|
|
592
|
-
- **CJK language support** — Chinese (Simplified + Traditional), Japanese, Korean
|
|
593
|
-
- Character bigram extraction for CJK Unicode ranges
|
|
594
|
-
- ~140 CJK stopwords (Chinese particles, Japanese hiragana particles, Korean postpositions)
|
|
595
|
-
|
|
596
|
-
---
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
### Added
|
|
601
|
-
|
|
602
|
-
- **`setup` command** — interactive zero-arg CLI wizard (`npx @cachly-dev/mcp-server setup`):
|
|
603
|
-
- Reads `CACHLY_JWT` from env or prompts interactively via readline
|
|
604
|
-
- Fetches instances from API; presents list when multiple exist
|
|
605
|
-
- Auto-detects installed editors (Cursor, Windsurf, VS Code, Continue.dev) by checking for their config directories
|
|
606
|
-
- Writes the correct MCP config file for each detected editor in one step
|
|
607
|
-
- Always writes/updates `CLAUDE.md` (idempotent via `<!-- cachly-brain-start/end -->` markers)
|
|
608
|
-
- **`init` command** now idempotent — re-running `npx @cachly-dev/mcp-server init` updates the brain block in `CLAUDE.md` instead of appending a duplicate
|
|
609
|
-
- Shared helpers: `buildMcpConfig()`, `buildClaudeMdBlock()`, `writeClaudeMd()` — used by both `setup` and `init`
|
|
610
|
-
|
|
611
|
-
### Fixed
|
|
612
|
-
|
|
613
|
-
- `init` no longer duplicates the brain block in `CLAUDE.md` when run multiple times
|
|
614
|
-
- Correct package name `@cachly-dev/mcp-server` used consistently (was `@cachly-dev/mcp` in generated configs)
|
|
615
|
-
|
|
616
|
-
---
|
|
617
|
-
|
|
618
|
-
## [0.1.1] – 2026-04-07
|
|
619
|
-
|
|
620
|
-
### Fixed
|
|
621
|
-
|
|
622
|
-
- Broken `index_project` tool schema – properties were accidentally placed outside the `TOOLS` array
|
|
623
|
-
- Unused `openai` variable removed from `cache_warmup` handler
|
|
624
|
-
- `readdir` type mismatch (`Dirent<string>` vs. `NonSharedBuffer`) fixed
|
|
625
|
-
- Version bumped to `0.3.0` in server metadata
|
|
626
|
-
|
|
627
|
-
---
|
|
628
|
-
|
|
629
|
-
## [0.1.0] – 2026-04-07
|
|
630
|
-
|
|
631
|
-
Initial release.
|
|
632
|
-
|
|
633
|
-
### Added
|
|
634
|
-
|
|
635
|
-
- MCP tool: `cache_set` – store a value with optional TTL
|
|
636
|
-
- MCP tool: `cache_get` – retrieve a cached value
|
|
637
|
-
- MCP tool: `cache_delete` – remove a key
|
|
638
|
-
- MCP tool: `semantic_search` – vector-similarity lookup for LLM response caching
|
|
639
|
-
- MCP tool: `cache_clear` – flush namespace or entire cache
|
|
640
|
-
- Compatible with Claude Desktop, Cursor, Windsurf, and any MCP-capable host
|
|
641
|
-
- API-key-based authentication
|
|
642
|
-
- EU data residency (German servers, DSGVO compliant)
|
|
643
|
-
|
|
644
|
-
### Known limitations
|
|
645
|
-
|
|
646
|
-
- ~~Streaming tools not yet supported~~ (tracked for a future release)
|
|
647
|
-
|
|
648
|
-
---
|
|
649
|
-
|
|
650
|
-
## [Unreleased]
|
|
651
|
-
|
|
652
|
-
See [../CHANGELOG.md](../CHANGELOG.md) for upcoming features.
|
|
653
|
-
|
package/Dockerfile
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
FROM node:22-alpine AS builder
|
|
2
|
-
WORKDIR /app
|
|
3
|
-
COPY package*.json tsconfig*.json ./
|
|
4
|
-
RUN npm ci --ignore-scripts
|
|
5
|
-
COPY src/ ./src/
|
|
6
|
-
RUN npm run build
|
|
7
|
-
|
|
8
|
-
FROM node:22-alpine
|
|
9
|
-
WORKDIR /app
|
|
10
|
-
COPY package*.json ./
|
|
11
|
-
RUN npm ci --omit=dev --ignore-scripts
|
|
12
|
-
COPY --from=builder /app/dist/ ./dist/
|
|
13
|
-
ENV NODE_ENV=production
|
|
14
|
-
ENV PORT=3000
|
|
15
|
-
EXPOSE 3000
|
|
16
|
-
ENTRYPOINT ["node", "dist/index.js"]
|