looply-cli 0.5.0 → 0.5.1
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-hash +1 -1
- package/dist/repo-scan.d.ts +7 -1
- package/dist/repo-scan.d.ts.map +1 -1
- package/dist/repo-scan.js +12 -3
- package/dist/repo-scan.js.map +1 -1
- package/package.json +2 -2
package/dist/.src-hash
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
b31ee96b5855c863b8c0276b9789081e937d397f6961c9a8ff8668c11ea2b4b2
|
package/dist/repo-scan.d.ts
CHANGED
|
@@ -12,10 +12,16 @@
|
|
|
12
12
|
* a cap two hundred repositories, and the caller says it stopped.
|
|
13
13
|
*
|
|
14
14
|
* 🔴 A REPOSITORY IS A LEAF. Once a folder has `.git` (a directory, or the
|
|
15
|
-
* file a linked worktree or submodule has) the walk does not go inside it: a
|
|
15
|
+
* file a linked worktree or submodule has — see below) the walk does not go inside it: a
|
|
16
16
|
* vendored checkout or a submodule is part of the project around it, not a
|
|
17
17
|
* second project to serve.
|
|
18
18
|
*
|
|
19
|
+
* 🔴 A LINKED WORKTREE IS SKIPPED, NOT SERVED. Its `.git` is a FILE pointing back at the main checkout, so
|
|
20
|
+
* it shares that checkout's repository and its Looply project: serving both put two daemons on one project and
|
|
21
|
+
* one of them was refused, restarting forever (seen on a real Desktop, 2026-10-14, where other tools create
|
|
22
|
+
* worktrees next to the repositories all day). The scan serves the main checkout; a worktree is served only when a
|
|
23
|
+
* person adds it with `looply serve add`.
|
|
24
|
+
*
|
|
19
25
|
* Symlinks are not followed — a link back up the tree is a walk that never ends.
|
|
20
26
|
*/
|
|
21
27
|
export declare const SCAN_MAX_DEPTH = 3;
|
package/dist/repo-scan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-scan.d.ts","sourceRoot":"","sources":["../src/repo-scan.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"repo-scan.d.ts","sourceRoot":"","sources":["../src/repo-scan.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,SAAS,aAAgE,CAAC;AAEvF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,iEAAiE;IACjE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE,GAAG,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,UAAU,EAAE,MAQxB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,EAAE,EAAE,MAAM,EACV,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CAAO,GACtF,UAAU,CA0CZ"}
|
package/dist/repo-scan.js
CHANGED
|
@@ -18,10 +18,16 @@ const node_path_1 = require("node:path");
|
|
|
18
18
|
* a cap two hundred repositories, and the caller says it stopped.
|
|
19
19
|
*
|
|
20
20
|
* 🔴 A REPOSITORY IS A LEAF. Once a folder has `.git` (a directory, or the
|
|
21
|
-
* file a linked worktree or submodule has) the walk does not go inside it: a
|
|
21
|
+
* file a linked worktree or submodule has — see below) the walk does not go inside it: a
|
|
22
22
|
* vendored checkout or a submodule is part of the project around it, not a
|
|
23
23
|
* second project to serve.
|
|
24
24
|
*
|
|
25
|
+
* 🔴 A LINKED WORKTREE IS SKIPPED, NOT SERVED. Its `.git` is a FILE pointing back at the main checkout, so
|
|
26
|
+
* it shares that checkout's repository and its Looply project: serving both put two daemons on one project and
|
|
27
|
+
* one of them was refused, restarting forever (seen on a real Desktop, 2026-10-14, where other tools create
|
|
28
|
+
* worktrees next to the repositories all day). The scan serves the main checkout; a worktree is served only when a
|
|
29
|
+
* person adds it with `looply serve add`.
|
|
30
|
+
*
|
|
25
31
|
* Symlinks are not followed — a link back up the tree is a walk that never ends.
|
|
26
32
|
*/
|
|
27
33
|
exports.SCAN_MAX_DEPTH = 3;
|
|
@@ -53,8 +59,11 @@ function scanForRepos(roots, fs, opts = {}) {
|
|
|
53
59
|
unreadable.push(dir);
|
|
54
60
|
return;
|
|
55
61
|
}
|
|
56
|
-
|
|
57
|
-
|
|
62
|
+
const git = entries.find((e) => e.name === '.git');
|
|
63
|
+
// A `.git` FILE is a linked worktree (see the header): a leaf, never served by the scan.
|
|
64
|
+
if (git && !git.dir)
|
|
65
|
+
return;
|
|
66
|
+
if (git) {
|
|
58
67
|
if (seen.has(dir))
|
|
59
68
|
return;
|
|
60
69
|
if (repos.length >= cap) {
|
package/dist/repo-scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-scan.js","sourceRoot":"","sources":["../src/repo-scan.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"repo-scan.js","sourceRoot":"","sources":["../src/repo-scan.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "looply-cli",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Leave your coding agent running. looply picks the work, holds the rails, and proves every change before it is kept.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"prepublishOnly": "npm run build"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@looply/core": "0.5.
|
|
35
|
+
"@looply/core": "0.5.1",
|
|
36
36
|
"pdfjs-dist": "5.6.205",
|
|
37
37
|
"qrcode-terminal": "^0.12.0",
|
|
38
38
|
"yaml": "^2.5.1"
|