mirror of
https://github.com/lukaszraczylo/claude-mnemonic.git
synced 2026-10-13 04:59:05 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
28b6582dac | ||
|
|
dc010fe57d | ||
|
|
7e1f6efe3c |
@@ -13,6 +13,7 @@ import (
|
||||
|
||||
"github.com/lukaszraczylo/claude-mnemonic/internal/config"
|
||||
"github.com/lukaszraczylo/claude-mnemonic/internal/mcp"
|
||||
"github.com/lukaszraczylo/claude-mnemonic/internal/telemetry"
|
||||
"github.com/lukaszraczylo/claude-mnemonic/internal/watcher"
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/rs/zerolog/log"
|
||||
@@ -60,6 +61,8 @@ func main() {
|
||||
// Start file watchers for config changes
|
||||
startWatchers()
|
||||
|
||||
telemetry.Ping("claude-mnemonic", Version)
|
||||
|
||||
// Create and run MCP server
|
||||
server := mcp.NewServer(client, workerURL, *project, Version)
|
||||
log.Info().Str("project", *project).Str("version", Version).Str("worker", workerURL).Msg("Starting MCP server")
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
// Package telemetry sends anonymous OSS usage pings.
|
||||
package telemetry
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
const endpoint = "https://oss.raczylo.com/v1/ping"
|
||||
|
||||
type pingPayload struct {
|
||||
Project string `json:"project"`
|
||||
Version string `json:"version"`
|
||||
Ts int64 `json:"ts"`
|
||||
}
|
||||
|
||||
// Ping fires an anonymous analytics ping asynchronously. Never blocks the caller.
|
||||
// Silently skips dev/dirty builds; all errors are logged at debug level only.
|
||||
func Ping(project, version string) {
|
||||
if version == "dev" || strings.Contains(version, "dirty") {
|
||||
return
|
||||
}
|
||||
go func() {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
body, err := json.Marshal(pingPayload{
|
||||
Project: project,
|
||||
Version: strings.TrimPrefix(version, "v"),
|
||||
Ts: time.Now().Unix(),
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
req, err := http.NewRequestWithContext(ctx, http.MethodPost, endpoint, bytes.NewReader(body))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
|
||||
resp, err := http.DefaultClient.Do(req)
|
||||
if err != nil {
|
||||
log.Debug().Err(err).Msg("telemetry ping failed")
|
||||
return
|
||||
}
|
||||
resp.Body.Close()
|
||||
}()
|
||||
}
|
||||
+12
-12
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
|
||||
"name": "claude-mnemonic",
|
||||
"version": "v0.11.57-dirty",
|
||||
"version": "1.0.0",
|
||||
"description": "Persistent memory system for Claude Code - stores observations, session summaries, and user prompts with semantic search",
|
||||
"owner": {
|
||||
"name": "lukaszraczylo",
|
||||
@@ -12,8 +12,8 @@
|
||||
"plugins": [
|
||||
{
|
||||
"name": "claude-mnemonic",
|
||||
"description": "Persistent memory system for Claude Code - Go implementation with SQLite and sqlite-vec vector search",
|
||||
"version": "0.11.105",
|
||||
"description": "Persistent memory system for Claude Code - Go implementation with SQLite and ChromaDB vector search",
|
||||
"version": "0.11.113",
|
||||
"author": {
|
||||
"name": "lukaszraczylo",
|
||||
"url": "https://github.com/lukaszraczylo"
|
||||
@@ -23,25 +23,25 @@
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/lukaszraczylo/claude-mnemonic",
|
||||
"releases": {
|
||||
"latest": "0.11.105",
|
||||
"latest": "0.11.113",
|
||||
"versions": {
|
||||
"0.11.105": {
|
||||
"releaseDate": "2026-04-21",
|
||||
"0.11.113": {
|
||||
"releaseDate": "2026-05-24",
|
||||
"downloads": {
|
||||
"darwin-arm64": {
|
||||
"url": "https://github.com/lukaszraczylo/claude-mnemonic/releases/download/v0.11.105/claude-mnemonic_0.11.105_darwin_arm64.tar.gz",
|
||||
"url": "https://github.com/lukaszraczylo/claude-mnemonic/releases/download/v0.11.113/claude-mnemonic_0.11.113_darwin_arm64.tar.gz",
|
||||
"format": "tar.gz",
|
||||
"sha256": "435694aa5775156c2cfb43020d63411acbfe47cb2815c55c667117a86783dbda"
|
||||
"sha256": "2f57716b2570d91cc2eb71ec0cb682d354aacaf0371f38a20a66f30105ec0b6b"
|
||||
},
|
||||
"linux-amd64": {
|
||||
"url": "https://github.com/lukaszraczylo/claude-mnemonic/releases/download/v0.11.105/claude-mnemonic_0.11.105_linux_amd64.tar.gz",
|
||||
"url": "https://github.com/lukaszraczylo/claude-mnemonic/releases/download/v0.11.113/claude-mnemonic_0.11.113_linux_amd64.tar.gz",
|
||||
"format": "tar.gz",
|
||||
"sha256": "38d1e23d3d850837718918179cc791901d05a658da3a170b6a298587df9ad2ba"
|
||||
"sha256": "6f10bcdfc811b78c05ab09f14757933f3c5e10b238a8f4047b9796075124b0a0"
|
||||
},
|
||||
"windows-amd64": {
|
||||
"url": "https://github.com/lukaszraczylo/claude-mnemonic/releases/download/v0.11.105/claude-mnemonic_0.11.105_windows_amd64.zip",
|
||||
"url": "https://github.com/lukaszraczylo/claude-mnemonic/releases/download/v0.11.113/claude-mnemonic_0.11.113_windows_amd64.zip",
|
||||
"format": "zip",
|
||||
"sha256": "b1cb63c60fba8dd3ad4908ac2db1691f94854cd3f5bd402e7f8c104007ccf34d"
|
||||
"sha256": "ce05d7ea33d6e68ed11d834203454c7490bd825a21c2ed0be253b77ff0936939"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user