@henryqw/pi-session-recall 4.0.2 → 4.0.3
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/README.md +2 -2
- package/extensions/search-core.ts +4 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -90,7 +90,7 @@ Available inventory includes this provenance:
|
|
|
90
90
|
}
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
-
It also sets `worktreeVerified:false`. Staged adds, changes, and deletes affect the
|
|
93
|
+
It also sets `worktreeVerified:false`. Staged adds, changes, and deletes affect the Git-index collections. Unstaged changes, deletions, mode changes, symlinks, and untracked files do not affect those collections. Skills come from Pi's effective registry and can include untracked files. Inspect current candidate files before assigning ownership; abstain if targeted current-file checks cannot be done safely.
|
|
94
94
|
|
|
95
95
|
## Flow
|
|
96
96
|
|
|
@@ -140,7 +140,7 @@ Session files over 32 MiB are excluded from indexing and hydration, so discovery
|
|
|
140
140
|
|
|
141
141
|
Pattern preparation runs one sync pass. A positive backlog or incomplete walk limits the sample and sets `sync.complete:false`. A total sync or required repository-inventory failure returns an explicit tool error.
|
|
142
142
|
|
|
143
|
-
Repository scope fails outside Git or when repository inventory fails. All scope still returns its corpus
|
|
143
|
+
Repository scope fails outside Git or when repository inventory fails. All scope still returns its corpus when Git-root lookup exits nonzero (`inventory.available:false`, `reason:"not-a-git-repository"`) or inventory fails after the root is resolved (`reason:"inventory-failed"`). If the working directory cannot be resolved, Git cannot start, root lookup overflows or produces invalid output or unexpected stderr, or the call is cancelled, preparation fails even with all scope; these failures do not return unavailable inventory.
|
|
144
144
|
|
|
145
145
|
Preparation rejects `query`, session cursors, or `window` in the same call. It also rejects `scope` without the operation.
|
|
146
146
|
|
|
@@ -315,10 +315,6 @@ function parseSessionFile(filePath: string, maxBytes: number): ParsedFile {
|
|
|
315
315
|
return parsed;
|
|
316
316
|
}
|
|
317
317
|
|
|
318
|
-
function isJunkEncodedDir(relSegments: string[]): boolean {
|
|
319
|
-
return relSegments.some((seg) => seg.startsWith("--tmp-") || seg.startsWith("--private-tmp-"));
|
|
320
|
-
}
|
|
321
|
-
|
|
322
318
|
/** Walk result. `complete: false` means the tree could not be fully read
|
|
323
319
|
* (missing root, readdir/stat failure) — callers must not treat unseen
|
|
324
320
|
* indexed paths as deleted. */
|
|
@@ -329,11 +325,10 @@ interface WalkResult {
|
|
|
329
325
|
|
|
330
326
|
function walkJsonlFiles(sessionsDir: string): WalkResult {
|
|
331
327
|
const files = new Map<string, fs.Stats>();
|
|
332
|
-
|
|
333
|
-
const stack: { dir: string; rel: string[] }[] = [{ dir: sessionsDir, rel: [] }];
|
|
328
|
+
const stack = [sessionsDir];
|
|
334
329
|
let complete = true;
|
|
335
330
|
while (stack.length > 0) {
|
|
336
|
-
const
|
|
331
|
+
const dir = stack.pop()!;
|
|
337
332
|
let entries: fs.Dirent[];
|
|
338
333
|
try {
|
|
339
334
|
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
@@ -346,8 +341,8 @@ function walkJsonlFiles(sessionsDir: string): WalkResult {
|
|
|
346
341
|
if (ent.isDirectory()) {
|
|
347
342
|
// Junk dirs are pruned before descent so a large ignored tree never
|
|
348
343
|
// costs a walk + per-file stats on every sync pass.
|
|
349
|
-
if (
|
|
350
|
-
stack.push(
|
|
344
|
+
if (ent.name.startsWith("--tmp-") || ent.name.startsWith("--private-tmp-")) continue;
|
|
345
|
+
stack.push(full);
|
|
351
346
|
} else if (ent.isFile() && ent.name.endsWith(".jsonl")) {
|
|
352
347
|
try {
|
|
353
348
|
files.set(full, fs.statSync(full));
|
package/package.json
CHANGED