@plurnk/plurnk-service 1.0.5 → 1.0.6
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/.env.defaults +55 -31
- package/INSTALL.md +3 -3
- package/README.md +4 -4
- package/SPEC.md +204 -192
- package/dist/Paths.js +1 -1
- package/dist/Paths.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +18 -18
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +17 -17
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +11 -11
- package/dist/core/Dispatcher.d.ts +11 -11
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +122 -124
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Engine.d.ts +20 -23
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +207 -183
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +106 -109
- package/dist/core/PacketBuilder.d.ts +9 -9
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +183 -115
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/ProposalLifecycle.d.ts +8 -8
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +10 -10
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProviderInstantiate.d.ts +1 -0
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +9 -3
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +4 -1
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +18 -9
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/TelemetryChannel.d.ts +5 -5
- package/dist/core/TelemetryChannel.d.ts.map +1 -1
- package/dist/core/TelemetryChannel.js +9 -9
- package/dist/core/TelemetryChannel.js.map +1 -1
- package/dist/core/caps/CapsResolve.js +2 -2
- package/dist/core/caps/CapsResolve.js.map +1 -1
- package/dist/core/caps/DbNotifyCaps.js +2 -2
- package/dist/core/caps/DbNotifyCaps.js.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +7 -7
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +2 -2
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +4 -4
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/fork.d.ts +1 -1
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +31 -26
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +41 -32
- package/dist/core/git-env.d.ts.map +1 -1
- package/dist/core/git-env.js +23 -7
- package/dist/core/git-env.js.map +1 -1
- package/dist/core/git-iso.d.ts +9 -0
- package/dist/core/git-iso.d.ts.map +1 -0
- package/dist/core/git-iso.js +227 -0
- package/dist/core/git-iso.js.map +1 -0
- package/dist/core/git-membership.d.ts +2 -2
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +70 -50
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.d.ts +1 -1
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/git-state.js +21 -11
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +81 -22
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +2 -2
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +19 -12
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/run-ops.sql +26 -26
- package/dist/core/scheme-types.d.ts +6 -6
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/search-gate.js +0 -0
- package/dist/core/search-gate.js.map +1 -1
- package/dist/core/token-ruler.js +2 -2
- package/dist/core/token-ruler.js.map +1 -1
- package/dist/core/worker-cap.d.ts +8 -0
- package/dist/core/worker-cap.d.ts.map +1 -0
- package/dist/core/worker-cap.js +20 -0
- package/dist/core/worker-cap.js.map +1 -0
- package/dist/core/{session-settings.d.ts → workspace-settings.d.ts} +5 -5
- package/dist/core/workspace-settings.d.ts.map +1 -0
- package/dist/core/{session-settings.js → workspace-settings.js} +13 -13
- package/dist/core/workspace-settings.js.map +1 -0
- package/dist/digest/Digest.d.ts +3 -3
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +79 -73
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/digest.sql +18 -18
- package/dist/schemes/Exec.d.ts +9 -2
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +121 -68
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +3 -3
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/File.js +23 -23
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Known.js +5 -5
- package/dist/schemes/Known.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +63 -14
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +49 -8
- package/dist/schemes/Plurnk.js +5 -5
- package/dist/schemes/Plurnk.js.map +1 -1
- package/dist/schemes/Skill.js +5 -5
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/Unknown.js +5 -5
- package/dist/schemes/Unknown.js.map +1 -1
- package/dist/schemes/{Run.d.ts → Worker.d.ts} +2 -2
- package/dist/schemes/Worker.d.ts.map +1 -0
- package/dist/schemes/{Run.js → Worker.js} +67 -67
- package/dist/schemes/Worker.js.map +1 -0
- package/dist/schemes/_entry-crud.js +8 -8
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +29 -29
- package/dist/schemes/_entry-find.d.ts +2 -1
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +31 -19
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +9 -9
- package/dist/schemes/_entry-graph.d.ts +2 -2
- package/dist/schemes/_entry-graph.d.ts.map +1 -1
- package/dist/schemes/_entry-graph.js +18 -18
- package/dist/schemes/_entry-graph.js.map +1 -1
- package/dist/schemes/_entry-graph.sql +8 -8
- package/dist/schemes/_entry-manifest.d.ts +1 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +72 -28
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts +4 -4
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +25 -25
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +9 -9
- package/dist/schemes/_entry-semantic.d.ts +2 -1
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +23 -4
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-semantic.sql +18 -4
- package/dist/schemes/_entry-send.d.ts +1 -1
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +6 -6
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/exec-abort.js +1 -1
- package/dist/schemes/exec-abort.js.map +1 -1
- package/dist/server/Daemon.d.ts +48 -48
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +285 -291
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/client-input.js +20 -20
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/dispatch-as-plurnk.d.ts +1 -1
- package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +7 -7
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/drain.sql +27 -27
- package/dist/server/envelope.d.ts +20 -20
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +86 -86
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +39 -39
- package/dist/server/logEntry.d.ts +1 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +1 -1
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/loopDocs.d.ts +1 -1
- package/dist/server/loopDocs.d.ts.map +1 -1
- package/dist/server/loopDocs.js +6 -6
- package/dist/server/loopDocs.js.map +1 -1
- package/dist/server/seam-entry-read.sql +2 -2
- package/dist/server/seam-log-read.sql +3 -3
- package/dist/server/seam-loop.sql +3 -3
- package/dist/server/seam-proposal-list.sql +4 -4
- package/dist/server/yolo.js +2 -2
- package/dist/server/yolo.js.map +1 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +21 -6
- package/dist/service.js.map +1 -1
- package/migrations/0000-00-00.01_schema.sql +82 -70
- package/package.json +17 -14
- package/dist/core/run-cap.d.ts +0 -8
- package/dist/core/run-cap.d.ts.map +0 -1
- package/dist/core/run-cap.js +0 -20
- package/dist/core/run-cap.js.map +0 -1
- package/dist/core/search-prefetch.d.ts +0 -17
- package/dist/core/search-prefetch.d.ts.map +0 -1
- package/dist/core/search-prefetch.js +0 -164
- package/dist/core/search-prefetch.js.map +0 -1
- package/dist/core/session-settings.d.ts.map +0 -1
- package/dist/core/session-settings.js.map +0 -1
- package/dist/schemes/Run.d.ts.map +0 -1
- package/dist/schemes/Run.js.map +0 -1
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
// The in-process git READ backend (#461/#463, isomorphic-git + the `ignore` lib) — the portable
|
|
2
|
+
// default behind every core git read. No subprocess, and hermetic BY CONSTRUCTION: isomorphic-git
|
|
3
|
+
// takes an explicit `dir` and never reads GIT_* env, ~/.gitconfig, or the system config, so the
|
|
4
|
+
// escape class hermeticGitEnv scrubs on the native path (#401/#428) cannot exist here. A sandboxed
|
|
5
|
+
// or git-less host gets identical membership + telemetry. `PLURNK_SERVICE_GIT_NATIVE=1` routes the
|
|
6
|
+
// callers (GitMembership, GitState) to system git instead — the membership pass measures ~8x native
|
|
7
|
+
// (~130ms at 20k files); the status read is pure-JS workdir hashing (statusMatrix, ~55x), the
|
|
8
|
+
// flag's main case on a large repo.
|
|
9
|
+
import git, { STAGE } from "isomorphic-git";
|
|
10
|
+
import fs from "node:fs";
|
|
11
|
+
import ignore from "ignore";
|
|
12
|
+
import { readdir, readFile } from "node:fs/promises";
|
|
13
|
+
import { existsSync } from "node:fs";
|
|
14
|
+
import { join } from "node:path";
|
|
15
|
+
export default class GitIso {
|
|
16
|
+
// One STAGE walk serves both member classes: `blob` entries are the tracked files
|
|
17
|
+
// (parity with `ls-files --stage` sans mode-160000), `commit` entries are submodule
|
|
18
|
+
// gitlinks — repo boundaries the untracked scan must never descend. Memoized on the
|
|
19
|
+
// caller's per-pass cache: trackedFiles + untrackedFiles in one membership pass share
|
|
20
|
+
// one walk, and the cache dies with the pass, so a rewritten index can't serve stale.
|
|
21
|
+
static #stageMemo = new WeakMap();
|
|
22
|
+
static #stageEntries(root, cache) {
|
|
23
|
+
let perCache = GitIso.#stageMemo.get(cache);
|
|
24
|
+
if (perCache === undefined) {
|
|
25
|
+
perCache = new Map();
|
|
26
|
+
GitIso.#stageMemo.set(cache, perCache);
|
|
27
|
+
}
|
|
28
|
+
let entry = perCache.get(root);
|
|
29
|
+
if (entry === undefined) {
|
|
30
|
+
entry = GitIso.#stageWalk(root, cache);
|
|
31
|
+
perCache.set(root, entry);
|
|
32
|
+
}
|
|
33
|
+
return entry;
|
|
34
|
+
}
|
|
35
|
+
static async #stageWalk(root, cache) {
|
|
36
|
+
const blobs = [];
|
|
37
|
+
const gitlinks = [];
|
|
38
|
+
await git.walk({
|
|
39
|
+
fs, dir: root, cache, trees: [STAGE()],
|
|
40
|
+
// Explicit param types (#469): a TS7031 fired on a box whose inference didn't flow the
|
|
41
|
+
// WalkerMap contextual type into the destructured param — annotate, never rely on it.
|
|
42
|
+
map: async (filepath, [stage]) => {
|
|
43
|
+
if (filepath === "." || stage === null)
|
|
44
|
+
return undefined;
|
|
45
|
+
const type = await stage.type();
|
|
46
|
+
if (type === "blob")
|
|
47
|
+
blobs.push(filepath);
|
|
48
|
+
if (type === "commit")
|
|
49
|
+
gitlinks.push(filepath);
|
|
50
|
+
return undefined;
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
return { blobs, gitlinks };
|
|
54
|
+
}
|
|
55
|
+
// Tracked files, workspace-relative — parity with `git ls-files --stage -z` + the gitlink
|
|
56
|
+
// filter: only blob entries (files + symlinks) are members; a `commit` entry is a submodule
|
|
57
|
+
// boundary (a separate declared repo) and a `tree` is walk hierarchy, never a file.
|
|
58
|
+
static async trackedFiles(root, cache) {
|
|
59
|
+
return (await GitIso.#stageEntries(root, cache)).blobs;
|
|
60
|
+
}
|
|
61
|
+
// Untracked-but-not-ignored files — parity with `git ls-files --others --exclude-standard`,
|
|
62
|
+
// differential-gated against it across the gitignore edge-case corpus (#463). A pruning
|
|
63
|
+
// fs-walk with the `ignore` lib: rules load ONCE per .gitignore (per-file `git.isIgnored`
|
|
64
|
+
// re-parses every call — measured 237x native; statusMatrix hashes the workdir — 55x, and
|
|
65
|
+
// crosses embedded-repo boundaries; the whole membership pass measures ~8x). Precedence is
|
|
66
|
+
// git's: `.git/info/exclude` lowest, then .gitignore
|
|
67
|
+
// root→deep, deeper opinions winning for their subtree. An ignored DIRECTORY is pruned
|
|
68
|
+
// whole (git: no re-include under an excluded dir — while `dir/**` glob patterns leave the
|
|
69
|
+
// dir itself unignored, so their re-includes work). Submodule gitlinks are never descended,
|
|
70
|
+
// and a directory carrying its own `.git` (an embedded plain repo) is a boundary listed as
|
|
71
|
+
// the single entry `dir/`, exactly as native does.
|
|
72
|
+
static async untrackedFiles(root, cache) {
|
|
73
|
+
const { blobs, gitlinks } = await GitIso.#stageEntries(root, cache);
|
|
74
|
+
const tracked = new Set(blobs);
|
|
75
|
+
const boundaries = new Set(gitlinks);
|
|
76
|
+
// Matchers in precedence order; each carries the dir it applies to ("" = root).
|
|
77
|
+
const matchers = [];
|
|
78
|
+
const excludes = await GitIso.#infoExclude(root);
|
|
79
|
+
if (excludes !== null)
|
|
80
|
+
matchers.push({ base: "", ig: ignore().add(excludes) });
|
|
81
|
+
const ignored = (rel, isDir) => {
|
|
82
|
+
let verdict = false;
|
|
83
|
+
for (const { base, ig } of matchers) {
|
|
84
|
+
if (base.length > 0 && !rel.startsWith(`${base}/`))
|
|
85
|
+
continue;
|
|
86
|
+
const local = base.length > 0 ? rel.slice(base.length + 1) : rel;
|
|
87
|
+
const t = ig.test(isDir ? `${local}/` : local);
|
|
88
|
+
if (t.ignored)
|
|
89
|
+
verdict = true;
|
|
90
|
+
else if (t.unignored)
|
|
91
|
+
verdict = false;
|
|
92
|
+
}
|
|
93
|
+
return verdict;
|
|
94
|
+
};
|
|
95
|
+
const untracked = [];
|
|
96
|
+
const walkDir = async (rel) => {
|
|
97
|
+
const gi = join(root, rel, ".gitignore");
|
|
98
|
+
const depth = matchers.length;
|
|
99
|
+
if (existsSync(gi))
|
|
100
|
+
matchers.push({ base: rel, ig: ignore().add(await readFile(gi, "utf8")) });
|
|
101
|
+
for (const entry of await readdir(join(root, rel), { withFileTypes: true })) {
|
|
102
|
+
if (entry.name === ".git")
|
|
103
|
+
continue;
|
|
104
|
+
const r = rel.length > 0 ? `${rel}/${entry.name}` : entry.name;
|
|
105
|
+
if (boundaries.has(r))
|
|
106
|
+
continue; // submodule — a separate declared repo
|
|
107
|
+
const isDir = entry.isDirectory();
|
|
108
|
+
if (ignored(r, isDir))
|
|
109
|
+
continue; // pruned: ignored dirs are never descended
|
|
110
|
+
if (isDir) {
|
|
111
|
+
// An embedded plain repo (its own .git, no gitlink) is a boundary too:
|
|
112
|
+
// native lists it as the one entry `dir/` and never claims its files.
|
|
113
|
+
if (existsSync(join(root, r, ".git"))) {
|
|
114
|
+
untracked.push(`${r}/`);
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
await walkDir(r);
|
|
118
|
+
}
|
|
119
|
+
else if (!tracked.has(r)) {
|
|
120
|
+
untracked.push(r);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
matchers.length = depth; // leaving the dir pops its .gitignore
|
|
124
|
+
};
|
|
125
|
+
await walkDir("");
|
|
126
|
+
return untracked;
|
|
127
|
+
}
|
|
128
|
+
// `.git/info/exclude`, linked-worktree-aware: a worktree's `.git` is a FILE pointing at
|
|
129
|
+
// the per-worktree gitdir, whose `commondir` names the shared gitdir where info/exclude
|
|
130
|
+
// actually lives. Absent at any step → null (no exclude rules).
|
|
131
|
+
static async #infoExclude(root) {
|
|
132
|
+
try {
|
|
133
|
+
let gitdir = join(root, ".git");
|
|
134
|
+
if ((await fs.promises.stat(gitdir)).isFile()) {
|
|
135
|
+
const pointer = (await readFile(gitdir, "utf8")).trim();
|
|
136
|
+
if (!pointer.startsWith("gitdir:"))
|
|
137
|
+
return null;
|
|
138
|
+
gitdir = pointer.slice("gitdir:".length).trim();
|
|
139
|
+
}
|
|
140
|
+
const commondir = join(gitdir, "commondir");
|
|
141
|
+
if (existsSync(commondir))
|
|
142
|
+
gitdir = join(gitdir, (await readFile(commondir, "utf8")).trim());
|
|
143
|
+
return await readFile(join(gitdir, "info/exclude"), "utf8");
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// The enclosing worktree root of a directory — parity with `git rev-parse --show-toplevel`,
|
|
150
|
+
// linked worktrees + submodules included (findRoot accepts a `.git` FILE — the gitdir
|
|
151
|
+
// pointer — as readily as a directory). Not inside any git tree → null.
|
|
152
|
+
static async repoToplevel(dir) {
|
|
153
|
+
try {
|
|
154
|
+
return await git.findRoot({ fs, filepath: dir });
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
return null; // not a git tree (or the dir is gone) — contributes nothing
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Working-tree status — parity with `git status --porcelain --branch`: branch, ahead/behind
|
|
161
|
+
// the configured upstream, and staged/unstaged/untracked counts. Throws on a non-repo /
|
|
162
|
+
// unborn-HEAD root (no commit yet); the caller maps that to null = no telemetry, the same
|
|
163
|
+
// fail-closed contract the native arm's catch applies.
|
|
164
|
+
static async status(root) {
|
|
165
|
+
const cache = {};
|
|
166
|
+
const branch = await git.currentBranch({ fs, dir: root, fullname: false }) ?? "HEAD"; // detached → HEAD, as porcelain renders it
|
|
167
|
+
const matrix = await git.statusMatrix({ fs, dir: root, cache });
|
|
168
|
+
let staged = 0;
|
|
169
|
+
let unstaged = 0;
|
|
170
|
+
let untracked = 0;
|
|
171
|
+
for (const [, head, workdir, stage] of matrix) {
|
|
172
|
+
if (head === 0 && stage === 0 && workdir === 2) {
|
|
173
|
+
untracked++;
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
if (head === 1 ? stage !== 1 : stage !== 0)
|
|
177
|
+
staged++; // index differs from HEAD → X column
|
|
178
|
+
if ((workdir === 2 && stage !== 2) || (workdir === 0 && stage !== 0))
|
|
179
|
+
unstaged++; // workdir differs from index → Y column
|
|
180
|
+
}
|
|
181
|
+
const { ahead, behind } = await GitIso.#aheadBehind(root, branch, cache);
|
|
182
|
+
return { branch, ahead, behind, staged, unstaged, untracked };
|
|
183
|
+
}
|
|
184
|
+
// ahead/behind vs the branch's configured upstream (branch.<name>.remote + .merge →
|
|
185
|
+
// refs/remotes/<remote>/<branch>). No upstream configured or never fetched → 0/0, the
|
|
186
|
+
// same absence porcelain's header shows. Counting walks parents from each tip and stops
|
|
187
|
+
// at the merge base, so the cost is proportional to the DIVERGENCE, never history depth.
|
|
188
|
+
static async #aheadBehind(root, branch, cache) {
|
|
189
|
+
const none = { ahead: 0, behind: 0 };
|
|
190
|
+
if (branch === "HEAD")
|
|
191
|
+
return none; // detached — porcelain shows no upstream either
|
|
192
|
+
try {
|
|
193
|
+
const remote = await git.getConfig({ fs, dir: root, path: `branch.${branch}.remote` });
|
|
194
|
+
const merge = await git.getConfig({ fs, dir: root, path: `branch.${branch}.merge` });
|
|
195
|
+
if (remote === undefined || merge === undefined)
|
|
196
|
+
return none;
|
|
197
|
+
const tip = await git.resolveRef({ fs, dir: root, ref: "HEAD" });
|
|
198
|
+
const up = await git.resolveRef({ fs, dir: root, ref: `refs/remotes/${remote}/${merge.replace(/^refs\/heads\//, "")}` });
|
|
199
|
+
if (tip === up)
|
|
200
|
+
return none;
|
|
201
|
+
const stop = new Set(await git.findMergeBase({ fs, dir: root, oids: [tip, up], cache }));
|
|
202
|
+
return {
|
|
203
|
+
ahead: await GitIso.#countToBase(root, tip, stop, cache),
|
|
204
|
+
behind: await GitIso.#countToBase(root, up, stop, cache),
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
return none; // upstream ref missing (configured but never fetched) — porcelain omits too
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
static async #countToBase(root, tip, stop, cache) {
|
|
212
|
+
let count = 0;
|
|
213
|
+
const queue = [tip];
|
|
214
|
+
const seen = new Set();
|
|
215
|
+
while (queue.length > 0) {
|
|
216
|
+
const oid = queue.pop();
|
|
217
|
+
if (seen.has(oid) || stop.has(oid))
|
|
218
|
+
continue;
|
|
219
|
+
seen.add(oid);
|
|
220
|
+
count++;
|
|
221
|
+
const { commit } = await git.readCommit({ fs, dir: root, oid, cache });
|
|
222
|
+
queue.push(...commit.parent);
|
|
223
|
+
}
|
|
224
|
+
return count;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=git-iso.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-iso.js","sourceRoot":"","sources":["../../src/core/git-iso.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,8 @@ export interface FsDivergence {
|
|
|
10
10
|
}
|
|
11
11
|
export default class GitMembership {
|
|
12
12
|
#private;
|
|
13
|
-
static resolveGitMembership(db: Db,
|
|
14
|
-
static resolveMembershipEffects(db: Db,
|
|
13
|
+
static resolveGitMembership(db: Db, workspaceId: number, signal: AbortSignal | undefined): Promise<string[]>;
|
|
14
|
+
static resolveMembershipEffects(db: Db, workspaceId: number, signal: AbortSignal | undefined): Promise<{
|
|
15
15
|
members: Array<{
|
|
16
16
|
path: string;
|
|
17
17
|
effect: "member" | "view";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-membership.d.ts","sourceRoot":"","sources":["../../src/core/git-membership.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git-membership.d.ts","sourceRoot":"","sources":["../../src/core/git-membership.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAO7D,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAKD,MAAM,CAAC,OAAO,OAAO,aAAa;;IA0K9B,OAAa,oBAAoB,CAC7B,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAkCnB;IASD,OAAa,wBAAwB,CACjC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAChC,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAkB5F;IA0GD,OAAa,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAUjF;CACJ"}
|
|
@@ -1,49 +1,56 @@
|
|
|
1
1
|
// SPEC §membership D4 — git-ls-files workspace membership. §membership-git-membership
|
|
2
2
|
//
|
|
3
|
-
// When a
|
|
3
|
+
// When a workspace's `project_root` is a git working tree, the git-tracked
|
|
4
4
|
// files (`git ls-files`) are workspace MEMBERS without any explicit client
|
|
5
5
|
// `pick`. This module resolves that membership and (when token accounting is
|
|
6
6
|
// available) materializes active members' disk content into a body channel,
|
|
7
7
|
// so they appear in the entry catalog (FIND-served) and are READ-able.
|
|
8
8
|
//
|
|
9
9
|
// Decisions realized here:
|
|
10
|
-
// D1 — workspace identity lives on the
|
|
10
|
+
// D1 — workspace identity lives on the workspace (project_root).
|
|
11
11
|
// D3 — disk co-location: members are channel-less markers until materialized;
|
|
12
12
|
// disk stays the truth.
|
|
13
13
|
// D4 — git present → ls-files membership. git absent → no fs-walk (this
|
|
14
14
|
// module no-ops on a non-git project_root, leaving headless / non-git
|
|
15
|
-
//
|
|
16
|
-
// overlay (
|
|
15
|
+
// workspaces completely unaffected). The pick/hide/view constraint
|
|
16
|
+
// overlay (workspace_constraints) layers on top: resolveMembership applies
|
|
17
17
|
// `(ls-files ∪ pick) − hide`; view is enforced at the File edit gate.
|
|
18
18
|
// D5 — coverage is exhaustive, work is change-gated: every member is stat'd each
|
|
19
19
|
// turn, but only one whose mtime:size signature changed is re-read,
|
|
20
20
|
// re-tokenized, and rewritten; an unchanged member is a no-op, and the EMI
|
|
21
21
|
// divergence rides that same pass. {§membership-change-gated-sync}
|
|
22
22
|
//
|
|
23
|
-
// git resolution
|
|
24
|
-
//
|
|
23
|
+
// git resolution is in-process by default (GitIso / isomorphic-git, #461) — portable,
|
|
24
|
+
// sandbox-safe, hermetic by construction. PLURNK_SERVICE_GIT_NATIVE=1 routes to system git
|
|
25
|
+
// (subprocess + hermeticGitEnv, AbortSignal-respecting) — the in-process membership pass
|
|
26
|
+
// measures ~8x native (~130ms at 20k files), so a large-repo host can buy the hot path back.
|
|
25
27
|
import { execFile } from "node:child_process";
|
|
26
28
|
import { hermeticGitEnv } from "./git-env.js";
|
|
29
|
+
import GitIso from "./git-iso.js";
|
|
27
30
|
import { promisify } from "node:util";
|
|
28
31
|
import { readFile, glob, stat } from "node:fs/promises";
|
|
29
32
|
import { resolve, relative, join, matchesGlob } from "node:path";
|
|
30
33
|
import { MimetypeBinary } from "../content/index.js";
|
|
31
34
|
import EntryCrud from "../schemes/_entry-crud.js";
|
|
32
|
-
import
|
|
35
|
+
import WorkspaceSettings from "./workspace-settings.js";
|
|
36
|
+
// Feature-flag convention: `=== "1"` exactly. Default (unset/0) = the in-process GitIso backend.
|
|
37
|
+
const nativeGit = () => process.env.PLURNK_SERVICE_GIT_NATIVE === "1";
|
|
33
38
|
export default class GitMembership {
|
|
34
39
|
static #execFileP = promisify(execFile);
|
|
35
|
-
// project_root for a
|
|
40
|
+
// project_root for a workspace. NULL = headless (no membership). Read once per
|
|
36
41
|
// resolution; the File scheme reads the same column for its own root.
|
|
37
|
-
static async #
|
|
38
|
-
const row = await db.
|
|
42
|
+
static async #loadWorkspaceRoot(db, workspaceId) {
|
|
43
|
+
const row = await db.envelope_get_workspace.get({ id: workspaceId });
|
|
39
44
|
return row?.project_root ?? null;
|
|
40
45
|
}
|
|
41
|
-
// Tracked files of one repo, workspace-relative
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
// Tracked files of one repo, workspace-relative — GitIso.trackedFiles (walk STAGE, blob
|
|
47
|
+
// entries only) or `git ls-files --stage -z` under the native flag. Either way gitlinks
|
|
48
|
+
// are filtered: a submodule (mode 160000, a commit pointer — a directory on disk, not a
|
|
49
|
+
// file) is a separate declared repo, never a member of its superproject. Empty → [].
|
|
50
|
+
static async #gitTrackedFiles(root, signal, cache) {
|
|
51
|
+
if (!nativeGit())
|
|
52
|
+
return GitIso.trackedFiles(root, cache);
|
|
53
|
+
// NUL-delimited so paths with spaces/newlines survive.
|
|
47
54
|
const { stdout } = await GitMembership.#execFileP("git", ["ls-files", "--stage", "-z"], { cwd: root, signal, maxBuffer: 64 * 1024 * 1024, env: hermeticGitEnv() });
|
|
48
55
|
const files = [];
|
|
49
56
|
for (const entry of stdout.split("\0")) {
|
|
@@ -58,19 +65,23 @@ export default class GitMembership {
|
|
|
58
65
|
}
|
|
59
66
|
return files;
|
|
60
67
|
}
|
|
61
|
-
// Untracked-but-not-ignored files of one repo (SPEC §membership-auto-add)
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
|
|
66
|
-
|
|
68
|
+
// Untracked-but-not-ignored files of one repo (SPEC §membership-auto-add) —
|
|
69
|
+
// GitIso.untrackedFiles (the differential-gated pruning ignore-walk) or `git ls-files
|
|
70
|
+
// --others --exclude-standard -z` under the native flag. A model-created file is a repo
|
|
71
|
+
// member the moment it exists — no git-stage required — while `.gitignore` still filters it.
|
|
72
|
+
static async #gitUntrackedFiles(root, signal, cache) {
|
|
73
|
+
if (!nativeGit())
|
|
74
|
+
return GitIso.untrackedFiles(root, cache);
|
|
67
75
|
const { stdout } = await GitMembership.#execFileP("git", ["ls-files", "--others", "--exclude-standard", "-z"], { cwd: root, signal, maxBuffer: 64 * 1024 * 1024, env: hermeticGitEnv() });
|
|
68
76
|
return stdout.split("\0").filter((e) => e.length > 0);
|
|
69
77
|
}
|
|
70
|
-
// Resolve a declared repo folder to its git toplevel (the repo root containing
|
|
71
|
-
//
|
|
72
|
-
//
|
|
78
|
+
// Resolve a declared repo folder to its git toplevel (the repo root containing it), or
|
|
79
|
+
// null if it isn't inside a git tree. GitIso.repoToplevel (findRoot) or `rev-parse
|
|
80
|
+
// --show-toplevel` under the native flag — both handle plain repos, linked worktrees
|
|
81
|
+
// (`.git` is a gitdir: file), and submodules alike.
|
|
73
82
|
static async #repoToplevel(dir, signal) {
|
|
83
|
+
if (!nativeGit())
|
|
84
|
+
return GitIso.repoToplevel(dir);
|
|
74
85
|
try {
|
|
75
86
|
const { stdout } = await GitMembership.#execFileP("git", ["rev-parse", "--show-toplevel"], { cwd: dir, signal, env: hermeticGitEnv() });
|
|
76
87
|
return stdout.trim();
|
|
@@ -81,7 +92,7 @@ export default class GitMembership {
|
|
|
81
92
|
}
|
|
82
93
|
// The forest (SPEC §membership, §membership-forest): union every declared repo's MEMBERS —
|
|
83
94
|
// tracked files PLUS untracked-but-not-ignored ones (§membership-auto-add) — each
|
|
84
|
-
// path-prefixed by the repo's location relative to the
|
|
95
|
+
// path-prefixed by the repo's location relative to the workspace root (empty prefix when
|
|
85
96
|
// the repo IS the root). Repos that don't resolve are skipped.
|
|
86
97
|
static async #forestMembers(root, repoDirs, signal) {
|
|
87
98
|
// Resolve every declared entry to its git toplevel, deduped: a glob (`*`) and an
|
|
@@ -96,14 +107,18 @@ export default class GitMembership {
|
|
|
96
107
|
}
|
|
97
108
|
}
|
|
98
109
|
const members = new Set();
|
|
110
|
+
// One iso-git cache per PASS: pack/index parses are reused across this resolve's repos
|
|
111
|
+
// and reads, then discarded — never carried across turns, so a rewritten index or
|
|
112
|
+
// repacked store can't serve stale.
|
|
113
|
+
const cache = {};
|
|
99
114
|
for (const repoRoot of repoRoots) {
|
|
100
115
|
// project_root is no boundary — only the relative-address base. EVERY member is
|
|
101
116
|
// addressed relative to the root, a repo outside it included (a `..`-prefixed
|
|
102
117
|
// path) — so the universal `join(root, pathname)` disk-resolver works unchanged;
|
|
103
118
|
// an absolute pathname would nest UNDER root and never materialize. {§membership-overlay-repo}
|
|
104
119
|
const prefix = relative(root, repoRoot);
|
|
105
|
-
const tracked = await GitMembership.#gitTrackedFiles(repoRoot, signal);
|
|
106
|
-
const untracked = await GitMembership.#gitUntrackedFiles(repoRoot, signal);
|
|
120
|
+
const tracked = await GitMembership.#gitTrackedFiles(repoRoot, signal, cache);
|
|
121
|
+
const untracked = await GitMembership.#gitUntrackedFiles(repoRoot, signal, cache);
|
|
107
122
|
for (const f of [...tracked, ...untracked]) {
|
|
108
123
|
members.add(join(prefix, f));
|
|
109
124
|
}
|
|
@@ -153,15 +168,15 @@ export default class GitMembership {
|
|
|
153
168
|
// the overlay globs, before composition. Single-sources the (git ∪ pick) derivation + the
|
|
154
169
|
// glob sets for resolveGitMembership (compose + reconcile) and resolveMembershipEffects
|
|
155
170
|
// (derive per-file effect for clients, #243). Headless (no project_root) → null.
|
|
156
|
-
static async #resolveOverlayInputs(db,
|
|
157
|
-
const root = await GitMembership.#
|
|
171
|
+
static async #resolveOverlayInputs(db, workspaceId, signal) {
|
|
172
|
+
const root = await GitMembership.#loadWorkspaceRoot(db, workspaceId);
|
|
158
173
|
if (root === null)
|
|
159
174
|
return null; // headless — no disk surface to resolve
|
|
160
|
-
const constraints = await db.
|
|
175
|
+
const constraints = await db.crud_list_workspace_constraints.all({ workspace_id: workspaceId });
|
|
161
176
|
const hideGlobs = constraints.filter((c) => c.effect === "hide").map((c) => c.glob);
|
|
162
177
|
const pickGlobs = constraints.filter((c) => c.effect === "pick").map((c) => c.glob);
|
|
163
178
|
const viewGlobs = constraints.filter((c) => c.effect === "view").map((c) => c.glob);
|
|
164
|
-
// git substrate — the union of the
|
|
179
|
+
// git substrate — the union of the workspace's DECLARED repos' MEMBERS: tracked files
|
|
165
180
|
// plus untracked-but-not-ignored ones (§membership-auto-add). PLURNK_SERVICE_GIT_ALLOWED=0 is
|
|
166
181
|
// the hard ceiling (deny all git membership); PLURNK_SERVICE_GIT_AUTO=1 declares project_root
|
|
167
182
|
// as an implicit repo. Empty when git is denied or no declared repo resolves, so
|
|
@@ -169,9 +184,9 @@ export default class GitMembership {
|
|
|
169
184
|
const repoDirs = constraints.filter((c) => c.effect === "repo").map((c) => c.glob); // a declared repo's ls-files join membership, path-prefixed — §membership-overlay-repo
|
|
170
185
|
if (process.env.PLURNK_SERVICE_GIT_AUTO === "1")
|
|
171
186
|
repoDirs.push(root); // ALLOWED ceiling gates the AUTO default — §membership-git-flags
|
|
172
|
-
// #232 — git:false is a
|
|
173
|
-
const
|
|
174
|
-
const gitMembers = process.env.PLURNK_SERVICE_GIT_ALLOWED === "1" &&
|
|
187
|
+
// #232 — git:false is a workspace-level tighten of the env ALLOWED ceiling (env AND workspace).
|
|
188
|
+
const workspaceGit = (await WorkspaceSettings.read(db, workspaceId)).git;
|
|
189
|
+
const gitMembers = process.env.PLURNK_SERVICE_GIT_ALLOWED === "1" && workspaceGit !== false
|
|
175
190
|
? await GitMembership.#forestMembers(root, repoDirs, signal)
|
|
176
191
|
: [];
|
|
177
192
|
// `pick` overlay — a targeted, client-dictated scan for untracked matches
|
|
@@ -179,7 +194,7 @@ export default class GitMembership {
|
|
|
179
194
|
const picked = pickGlobs.length === 0 ? [] : await GitMembership.#scanPickMembers(root, pickGlobs, signal); // §membership-overlay-pick
|
|
180
195
|
return { root, gitMembers, picked, hideGlobs, viewGlobs };
|
|
181
196
|
}
|
|
182
|
-
// Resolve a
|
|
197
|
+
// Resolve a workspace's file membership: the desired set is (git ls-files ∪ pick
|
|
183
198
|
// globs) − hide globs (SPEC §membership overlay), reconciled against the registered
|
|
184
199
|
// overlay-owned members so entries == members. Channel-less rows — disk is the
|
|
185
200
|
// truth (D3); the row is the membership marker File.read gates on. Returns the
|
|
@@ -187,8 +202,8 @@ export default class GitMembership {
|
|
|
187
202
|
//
|
|
188
203
|
// signal-respecting: git shell-outs + the pick scan honor `signal`. Headless
|
|
189
204
|
// (no project_root) yields nothing; a non-git root with pick-globs still resolves.
|
|
190
|
-
static async resolveGitMembership(db,
|
|
191
|
-
const inputs = await GitMembership.#resolveOverlayInputs(db,
|
|
205
|
+
static async resolveGitMembership(db, workspaceId, signal) {
|
|
206
|
+
const inputs = await GitMembership.#resolveOverlayInputs(db, workspaceId, signal);
|
|
192
207
|
if (inputs === null)
|
|
193
208
|
return []; // headless — no disk surface to resolve
|
|
194
209
|
const { gitMembers: members, picked, hideGlobs } = inputs;
|
|
@@ -208,12 +223,12 @@ export default class GitMembership {
|
|
|
208
223
|
// or 'constraint') no longer desired — untracked, unmatched, or newly hidden.
|
|
209
224
|
// Model-created ('client') members are never reclaimed.
|
|
210
225
|
for (const pathname of desiredGit) {
|
|
211
|
-
await db.
|
|
226
|
+
await db.crud_register_workspace_member.get({ workspace_id: workspaceId, scheme: null, pathname: `/${pathname}`, membership_origin: "git" });
|
|
212
227
|
}
|
|
213
228
|
for (const pathname of desiredPick) {
|
|
214
|
-
await db.
|
|
229
|
+
await db.crud_register_workspace_member.get({ workspace_id: workspaceId, scheme: null, pathname: `/${pathname}`, membership_origin: "constraint" });
|
|
215
230
|
}
|
|
216
|
-
const registered = await db.crud_list_reconcilable_members.all({
|
|
231
|
+
const registered = await db.crud_list_reconcilable_members.all({ workspace_id: workspaceId });
|
|
217
232
|
for (const m of registered) {
|
|
218
233
|
if (!desiredSet.has(m.pathname)) {
|
|
219
234
|
await db.crud_delete_entry.run({ entry_id: m.id });
|
|
@@ -228,8 +243,8 @@ export default class GitMembership {
|
|
|
228
243
|
// File edit gate §membership-overlay-view) or plain `member`; `hidden` are candidates a `hide`
|
|
229
244
|
// glob excludes (project files absent from the manifest). Paths namespace-absolute, matching
|
|
230
245
|
// the manifest + storage. Headless → empty. {§membership-resolved-effects}
|
|
231
|
-
static async resolveMembershipEffects(db,
|
|
232
|
-
const inputs = await GitMembership.#resolveOverlayInputs(db,
|
|
246
|
+
static async resolveMembershipEffects(db, workspaceId, signal) {
|
|
247
|
+
const inputs = await GitMembership.#resolveOverlayInputs(db, workspaceId, signal);
|
|
233
248
|
if (inputs === null)
|
|
234
249
|
return { members: [], hidden: [] }; // headless
|
|
235
250
|
const { gitMembers, picked, hideGlobs, viewGlobs } = inputs;
|
|
@@ -289,6 +304,11 @@ export default class GitMembership {
|
|
|
289
304
|
let sig;
|
|
290
305
|
try {
|
|
291
306
|
const st = await stat(canonical);
|
|
307
|
+
// A directory-shaped member — an embedded-repo boundary the untracked scan lists as
|
|
308
|
+
// `dir/` (native + iso alike) — is a membership marker: disk truth is a directory,
|
|
309
|
+
// nothing to materialize. Mirrors missing-on-disk: membership stands, no channel.
|
|
310
|
+
if (st.isDirectory())
|
|
311
|
+
return null;
|
|
292
312
|
sig = `${st.mtimeMs}:${st.size}`;
|
|
293
313
|
}
|
|
294
314
|
catch (err) {
|
|
@@ -297,14 +317,14 @@ export default class GitMembership {
|
|
|
297
317
|
throw err;
|
|
298
318
|
}
|
|
299
319
|
const known = await ctx.db.crud_get_member_sig.get({
|
|
300
|
-
|
|
320
|
+
workspace_id: ctx.workspaceId, scheme: null, pathname,
|
|
301
321
|
});
|
|
302
322
|
if (known !== undefined && known.synced_sig === sig)
|
|
303
323
|
return null; // unchanged — the change-gate
|
|
304
324
|
const mimetype = await GitMembership.#detectMimetype(canonical, ctx.mimetypes);
|
|
305
325
|
if (MimetypeBinary.isBinaryMimetype(mimetype)) {
|
|
306
326
|
// Empty body channel stamped with the real binary mimetype — a first-
|
|
307
|
-
// class entry that READ-415s through
|
|
327
|
+
// class entry that READ-415s through readWorkspaceEntry's isBinaryMimetype
|
|
308
328
|
// gate (#186), not a channel-less row that would read as 404.
|
|
309
329
|
const r = await EntryCrud.writeEntry(pathname, { channels: { body: { content: "", mimetype } }, tags: [] }, ctx, null);
|
|
310
330
|
if (r.entryId !== null)
|
|
@@ -336,7 +356,7 @@ export default class GitMembership {
|
|
|
336
356
|
// the entry: an existing body channel whose content differs from disk is an
|
|
337
357
|
// ambient divergence (D5). writeEntry then refreshes the entry to disk truth.
|
|
338
358
|
const prior = await ctx.db.ops_read_channel.get({
|
|
339
|
-
|
|
359
|
+
workspace_id: ctx.workspaceId, scheme: null, pathname, channel: "body",
|
|
340
360
|
});
|
|
341
361
|
const result = await EntryCrud.writeEntry(pathname, { channels: { body: { content, mimetype } }, tags: [] }, ctx, null);
|
|
342
362
|
if (result.entryId !== null)
|
|
@@ -346,15 +366,15 @@ export default class GitMembership {
|
|
|
346
366
|
}
|
|
347
367
|
return null;
|
|
348
368
|
}
|
|
349
|
-
// Full membership + materialization pass for a
|
|
369
|
+
// Full membership + materialization pass for a worker. Registers git members,
|
|
350
370
|
// then materializes each active (on-disk, non-binary) member as an entry
|
|
351
371
|
// through writeEntry. Called at packet-composition time (Engine.runTurn) per
|
|
352
|
-
// D5. No-ops on headless / non-git
|
|
372
|
+
// D5. No-ops on headless / non-git workspaces.
|
|
353
373
|
static async indexGitMembership(ctx) {
|
|
354
|
-
const root = await GitMembership.#
|
|
374
|
+
const root = await GitMembership.#loadWorkspaceRoot(ctx.db, ctx.workspaceId);
|
|
355
375
|
if (root === null)
|
|
356
376
|
return [];
|
|
357
|
-
const tracked = await GitMembership.resolveGitMembership(ctx.db, ctx.
|
|
377
|
+
const tracked = await GitMembership.resolveGitMembership(ctx.db, ctx.workspaceId, ctx.signal);
|
|
358
378
|
const divergences = [];
|
|
359
379
|
for (const pathname of tracked) {
|
|
360
380
|
const divergence = await GitMembership.#materializeMember(pathname, root, ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-membership.js","sourceRoot":"","sources":["../../src/core/git-membership.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git-membership.js","sourceRoot":"","sources":["../../src/core/git-membership.ts"],"names":[],"mappings":"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"}
|
package/dist/core/git-state.d.ts
CHANGED
|
@@ -10,6 +10,6 @@ export interface GitStatus {
|
|
|
10
10
|
export default class GitState {
|
|
11
11
|
#private;
|
|
12
12
|
static enabled(): boolean;
|
|
13
|
-
static status(db: Db,
|
|
13
|
+
static status(db: Db, workspaceId: number, signal: AbortSignal | undefined): Promise<GitStatus | null>;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=git-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-state.d.ts","sourceRoot":"","sources":["../../src/core/git-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git-state.d.ts","sourceRoot":"","sources":["../../src/core/git-state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,SAAS,CAAC;AAG9C,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB;AAUD,MAAM,CAAC,OAAO,OAAO,QAAQ;;IAGzB,MAAM,CAAC,OAAO,IAAI,OAAO,CAIxB;IAED,OAAa,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAoB3G;CA2BJ"}
|