xindex 1.0.14 → 1.0.15

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/.xindex.json CHANGED
@@ -87,7 +87,20 @@
87
87
  ],
88
88
  "ignoreFiles": [
89
89
  ".xindex",
90
- "media"
90
+ "*.png",
91
+ "*.jpg",
92
+ "*.jpeg",
93
+ "*.gif",
94
+ "*.svg",
95
+ "*.ico",
96
+ "*.woff",
97
+ "*.woff2",
98
+ "*.ttf",
99
+ "*.eot",
100
+ "*.otf",
101
+ ".gitkeep",
102
+ "package-lock.json",
103
+ "yarn.lock"
91
104
  ],
92
105
  "maxLines": 30,
93
106
  "maxFileBytes": 100000,
package/CLAUDE.md CHANGED
@@ -28,7 +28,7 @@
28
28
  - **Section splitting**: large `.md` files → `*.1.*`, `*.2.*` parts. Original becomes index with bullet summaries.
29
29
  - **Detail expansion**: reread task → research every step (files, APIs, deps) → expand with concrete details (paths, functions, tables, exact changes) → preserve NxM shape → no info loss → update diagram → keep balanced detail density
30
30
  - **Context recovery**: when chat compacts, reread active task's log to recover direction
31
- - **Completed tasks**: move done tasks (+ their logs, maps, reports) to `.ai/task/done/`. Update `done/INDEX.md` (relative links, newest-first). Root `INDEX.md` lists only active/pending tasks + a link to `done/INDEX.md`.
31
+ - **Completed tasks**: move done tasks (+ their logs, maps, reports) to `.ai/task/done/`. Use xindex search for discovery instead of manual index documents.
32
32
 
33
33
  ## Code Patterns
34
34
 
@@ -20,6 +20,12 @@ export function WalkFiles({cwd, log, ignoreFiles = [], followSymlinks = false}:
20
20
  }
21
21
  }
22
22
 
23
+ const HARD_SKIP = new Set([".git", ".xindex"]);
24
+
25
+ function isHardlySkipped(name: string): boolean {
26
+ return HARD_SKIP.has(name);
27
+ }
28
+
23
29
  const visited = new Set<string>();
24
30
 
25
31
  async function* walk(dir: string, parentRules: string[]): AsyncIterable<string> {
@@ -45,7 +51,7 @@ export function WalkFiles({cwd, log, ignoreFiles = [], followSymlinks = false}:
45
51
  visited.add(real);
46
52
  const s = await stat(real);
47
53
  if (s.isDirectory()) {
48
- if (entry.name.startsWith(".")) continue;
54
+ if (isHardlySkipped(entry.name)) continue;
49
55
  if (ig.ignores(rel + "/")) continue;
50
56
  yield* walk(abs, rules);
51
57
  } else if (s.isFile()) {
@@ -59,7 +65,7 @@ export function WalkFiles({cwd, log, ignoreFiles = [], followSymlinks = false}:
59
65
  }
60
66
 
61
67
  if (entry.isDirectory()) {
62
- if (entry.name.startsWith(".")) continue;
68
+ if (isHardlySkipped(entry.name)) continue;
63
69
  if (ig.ignores(rel + "/")) continue;
64
70
  yield* walk(abs, rules);
65
71
  } else if (entry.isFile()) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xindex",
3
- "version": "1.0.14",
3
+ "version": "1.0.15",
4
4
  "description": "Local semantic code search — index codebase, search by meaning or keywords",
5
5
  "type": "module",
6
6
  "main": "xindex.ts",
@@ -17,10 +17,12 @@
17
17
  "search": "tsx apps/run.search.ts",
18
18
  "reset": "tsx apps/run.reset.ts",
19
19
  "test": "npm run test.functional && npm run test.compilation",
20
+ "dev.ci": "npm run test && npm run test.npx",
20
21
  "mcp": "tsx apps/run.mcp.ts",
21
22
  "watch": "tsx apps/run.watch.ts",
22
23
  "test.functional": "bash test/functional.sh",
23
- "test.compilation": "npx -y tsc --ignoreConfig --noEmit --target ES2022 --module ESNext --moduleResolution bundler --esModuleInterop --skipLibCheck --strict false $(git ls-files '*.ts')"
24
+ "test.compilation": "npx -y tsc --ignoreConfig --noEmit --target ES2022 --module ESNext --moduleResolution bundler --esModuleInterop --skipLibCheck --strict false $(git ls-files '*.ts')",
25
+ "test.npx": "docker run --rm -it -w /tmp node:22 bash -c 'npm i -g xindex && xindex-index tsx-0 && xindex-search streamx map | grep \"await mapper\" && which xindex | grep bin/xindex' "
24
26
  },
25
27
  "private": false,
26
28
  "engines": {