@folterung/project-memory 0.1.3 → 0.1.5

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.
@@ -1,6 +1,6 @@
1
1
  services:
2
2
  qdrant:
3
- image: qdrant/qdrant:v1.7.4
3
+ image: qdrant/qdrant:v1.16.3
4
4
  container_name: project-memory-qdrant
5
5
  ports:
6
6
  - "127.0.0.1:6333:6333"
@@ -8,7 +8,8 @@ services:
8
8
  - qdrant_storage:/qdrant/storage
9
9
  restart: unless-stopped
10
10
  healthcheck:
11
- test: ["CMD", "wget", "-q", "--spider", "http://localhost:6333/readyz"]
11
+ # v1.7.x returns 404 for /health and /readyz; root returns 200 when up
12
+ test: ["CMD", "wget", "-q", "--spider", "http://localhost:6333/"]
12
13
  interval: 5s
13
14
  timeout: 10s
14
15
  retries: 12
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@folterung/project-memory",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "private": false,
5
5
  "description": "Local-first Project Memory: scoped indexing, embeddings, Cursor integration",
6
6
  "repository": "https://github.com/folterung/project-memory",
@@ -1,7 +1,8 @@
1
1
  import { execSync } from "node:child_process";
2
2
  import { existsSync } from "node:fs";
3
3
  import { join } from "node:path";
4
- const QDRANT_READYZ_URL = "http://127.0.0.1:6333/readyz";
4
+ /** Root and readiness URLs; v1.7.x returns 404 for /health and /readyz, root returns 200 when up */
5
+ const QDRANT_CHECK_URLS = ["http://127.0.0.1:6333/", "http://127.0.0.1:6333/readyz"];
5
6
  const HEALTH_POLL_MS = 2000;
6
7
  const HEALTH_INITIAL_DELAY_MS = 8000;
7
8
  const HEALTH_TIMEOUT_MS = 120_000;
@@ -39,6 +40,19 @@ export function dockerComposeDown(cwd) {
39
40
  const cmd = composeCmd(dir);
40
41
  execSync(`${cmd} down`, { stdio: "inherit", cwd: dir });
41
42
  }
43
+ async function checkQdrantUp() {
44
+ for (const url of QDRANT_CHECK_URLS) {
45
+ try {
46
+ const r = await fetch(url);
47
+ if (r.ok)
48
+ return true;
49
+ }
50
+ catch {
51
+ // try next URL
52
+ }
53
+ }
54
+ return false;
55
+ }
42
56
  export function waitForQdrantHealth(timeoutMs = HEALTH_TIMEOUT_MS) {
43
57
  const start = Date.now();
44
58
  return new Promise((resolve, reject) => {
@@ -47,9 +61,9 @@ export function waitForQdrantHealth(timeoutMs = HEALTH_TIMEOUT_MS) {
47
61
  reject(new Error("Qdrant health check timed out"));
48
62
  return;
49
63
  }
50
- fetch(QDRANT_READYZ_URL)
51
- .then((r) => {
52
- if (r.ok)
64
+ checkQdrantUp()
65
+ .then((ok) => {
66
+ if (ok)
53
67
  resolve();
54
68
  else
55
69
  setTimeout(poll, HEALTH_POLL_MS);
@@ -69,8 +83,6 @@ export function checkDockerAvailable(cwd) {
69
83
  }
70
84
  }
71
85
  export function checkQdrantHealthy() {
72
- return fetch(QDRANT_READYZ_URL)
73
- .then((r) => r.ok)
74
- .catch(() => false);
86
+ return checkQdrantUp();
75
87
  }
76
88
  //# sourceMappingURL=compose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/docker/compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/docker/compose.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ import { execSync, spawn } from "node:child_process";
2
2
  import { existsSync } from "node:fs";
3
3
  import { join } from "node:path";
4
4
 
5
- const QDRANT_READYZ_URL = "http://127.0.0.1:6333/readyz";
5
+ /** Root and readiness URLs; v1.7.x returns 404 for /health and /readyz, root returns 200 when up */
6
+ const QDRANT_CHECK_URLS = ["http://127.0.0.1:6333/", "http://127.0.0.1:6333/readyz"];
6
7
  const HEALTH_POLL_MS = 2000;
7
8
  const HEALTH_INITIAL_DELAY_MS = 8000;
8
9
  const HEALTH_TIMEOUT_MS = 120_000;
@@ -41,6 +42,18 @@ export function dockerComposeDown(cwd: string): void {
41
42
  execSync(`${cmd} down`, { stdio: "inherit", cwd: dir });
42
43
  }
43
44
 
45
+ async function checkQdrantUp(): Promise<boolean> {
46
+ for (const url of QDRANT_CHECK_URLS) {
47
+ try {
48
+ const r = await fetch(url);
49
+ if (r.ok) return true;
50
+ } catch {
51
+ // try next URL
52
+ }
53
+ }
54
+ return false;
55
+ }
56
+
44
57
  export function waitForQdrantHealth(timeoutMs: number = HEALTH_TIMEOUT_MS): Promise<void> {
45
58
  const start = Date.now();
46
59
  return new Promise((resolve, reject) => {
@@ -49,9 +62,9 @@ export function waitForQdrantHealth(timeoutMs: number = HEALTH_TIMEOUT_MS): Prom
49
62
  reject(new Error("Qdrant health check timed out"));
50
63
  return;
51
64
  }
52
- fetch(QDRANT_READYZ_URL)
53
- .then((r) => {
54
- if (r.ok) resolve();
65
+ checkQdrantUp()
66
+ .then((ok) => {
67
+ if (ok) resolve();
55
68
  else setTimeout(poll, HEALTH_POLL_MS);
56
69
  })
57
70
  .catch(() => setTimeout(poll, HEALTH_POLL_MS));
@@ -70,7 +83,5 @@ export function checkDockerAvailable(cwd: string): boolean {
70
83
  }
71
84
 
72
85
  export function checkQdrantHealthy(): Promise<boolean> {
73
- return fetch(QDRANT_READYZ_URL)
74
- .then((r) => r.ok)
75
- .catch(() => false);
86
+ return checkQdrantUp();
76
87
  }