@bevel-software/platform-core-backend 0.29.0 → 0.30.0
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/__tests__/test-repositories.d.ts +3 -0
- package/dist/__tests__/test-repositories.d.ts.map +1 -0
- package/dist/__tests__/test-repositories.js +18 -0
- package/dist/__tests__/test-repositories.js.map +1 -0
- package/dist/core/create-core-server.js +1 -1
- package/dist/core/create-core-server.js.map +1 -1
- package/dist/core/create-core-services.d.ts +3 -0
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +32 -4
- package/dist/core/create-core-services.js.map +1 -1
- package/dist/core/lifecycle.d.ts +8 -0
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +4 -0
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/modules/access/access-control.interface.d.ts +20 -0
- package/dist/modules/access/access-control.interface.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.d.ts +32 -1
- package/dist/modules/access/access-control.service.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.js +138 -16
- package/dist/modules/access/access-control.service.js.map +1 -1
- package/dist/modules/access/access.routes.d.ts.map +1 -1
- package/dist/modules/access/access.routes.js +20 -6
- package/dist/modules/access/access.routes.js.map +1 -1
- package/dist/modules/agent-instructions/shared-file-rules.d.ts +1 -1
- package/dist/modules/agent-instructions/shared-file-rules.js +1 -1
- package/dist/modules/diff/diff.service.d.ts.map +1 -1
- package/dist/modules/diff/diff.service.js +7 -1
- package/dist/modules/diff/diff.service.js.map +1 -1
- package/dist/modules/kb-fs/git-dir.d.ts +21 -0
- package/dist/modules/kb-fs/git-dir.d.ts.map +1 -0
- package/dist/modules/kb-fs/git-dir.js +58 -0
- package/dist/modules/kb-fs/git-dir.js.map +1 -0
- package/dist/modules/kb-fs/index.d.ts +2 -0
- package/dist/modules/kb-fs/index.d.ts.map +1 -1
- package/dist/modules/kb-fs/index.js +2 -1
- package/dist/modules/kb-fs/index.js.map +1 -1
- package/dist/modules/kb-fs/ref-files.d.ts +63 -0
- package/dist/modules/kb-fs/ref-files.d.ts.map +1 -0
- package/dist/modules/kb-fs/ref-files.js +249 -0
- package/dist/modules/kb-fs/ref-files.js.map +1 -0
- package/dist/modules/plugins/teams.routes.d.ts +4 -0
- package/dist/modules/plugins/teams.routes.d.ts.map +1 -1
- package/dist/modules/plugins/teams.routes.js +9 -1
- package/dist/modules/plugins/teams.routes.js.map +1 -1
- package/dist/modules/tool-auth/internal-token.service.d.ts +1 -1
- package/dist/modules/tool-auth/tool-auth.middleware.d.ts +1 -2
- package/dist/modules/tool-auth/tool-auth.middleware.d.ts.map +1 -1
- package/dist/modules/tool-auth/tool-auth.middleware.js +1 -2
- package/dist/modules/tool-auth/tool-auth.middleware.js.map +1 -1
- package/dist/modules/tool-helpers/tool-handler.d.ts +2 -2
- package/dist/modules/tool-helpers/tool.contract.d.ts +2 -2
- package/dist/modules/workflow/git/git.service.d.ts +29 -0
- package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/git.service.js +177 -24
- package/dist/modules/workflow/git/git.service.js.map +1 -1
- package/dist/modules/workflow/workflow-hooks.d.ts +1 -1
- package/dist/modules/workspace/agent-access.gate.d.ts +2 -2
- package/dist/modules/workspace/agent-access.gate.js +2 -2
- package/dist/modules/workspace/bounded-matcher.d.ts +79 -0
- package/dist/modules/workspace/bounded-matcher.d.ts.map +1 -0
- package/dist/modules/workspace/bounded-matcher.js +261 -0
- package/dist/modules/workspace/bounded-matcher.js.map +1 -0
- package/dist/modules/workspace/fetch-instant.d.ts +9 -0
- package/dist/modules/workspace/fetch-instant.d.ts.map +1 -0
- package/dist/modules/workspace/fetch-instant.js +13 -0
- package/dist/modules/workspace/fetch-instant.js.map +1 -0
- package/dist/modules/workspace/index.d.ts +7 -0
- package/dist/modules/workspace/index.d.ts.map +1 -1
- package/dist/modules/workspace/index.js +6 -0
- package/dist/modules/workspace/index.js.map +1 -1
- package/dist/modules/workspace/kb-repository.contract.d.ts +124 -0
- package/dist/modules/workspace/kb-repository.contract.d.ts.map +1 -0
- package/dist/modules/workspace/kb-repository.contract.js +19 -0
- package/dist/modules/workspace/kb-repository.contract.js.map +1 -0
- package/dist/modules/workspace/kb-repository.d.ts +236 -0
- package/dist/modules/workspace/kb-repository.d.ts.map +1 -0
- package/dist/modules/workspace/kb-repository.js +811 -0
- package/dist/modules/workspace/kb-repository.js.map +1 -0
- package/dist/modules/workspace/pattern-matcher.contract.d.ts +50 -0
- package/dist/modules/workspace/pattern-matcher.contract.d.ts.map +1 -0
- package/dist/modules/workspace/pattern-matcher.contract.js +27 -0
- package/dist/modules/workspace/pattern-matcher.contract.js.map +1 -0
- package/dist/modules/workspace/routine-write-policy.d.ts +0 -7
- package/dist/modules/workspace/routine-write-policy.d.ts.map +1 -1
- package/dist/modules/workspace/routine-write-policy.js +0 -5
- package/dist/modules/workspace/routine-write-policy.js.map +1 -1
- package/dist/modules/workspace/set-aside-clone.d.ts +40 -0
- package/dist/modules/workspace/set-aside-clone.d.ts.map +1 -1
- package/dist/modules/workspace/set-aside-clone.js +139 -0
- package/dist/modules/workspace/set-aside-clone.js.map +1 -1
- package/dist/modules/workspace/startup/kb-startup-runner.d.ts +99 -0
- package/dist/modules/workspace/startup/kb-startup-runner.d.ts.map +1 -1
- package/dist/modules/workspace/startup/kb-startup-runner.js +407 -29
- package/dist/modules/workspace/startup/kb-startup-runner.js.map +1 -1
- package/dist/modules/workspace/workspace.service.d.ts +68 -32
- package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.service.js +240 -161
- package/dist/modules/workspace/workspace.service.js.map +1 -1
- package/dist/modules/workspace/workspace.tools.d.ts +13 -4
- package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.tools.js +162 -336
- package/dist/modules/workspace/workspace.tools.js.map +1 -1
- package/dist/test-setup.js +4 -0
- package/dist/test-setup.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/test-repositories.ts +22 -0
- package/src/__tests__/workspace-service.ts +69 -0
- package/src/core/__tests__/lifecycle.test.ts +16 -0
- package/src/core/create-core-server.ts +1 -1
- package/src/core/create-core-services.ts +36 -3
- package/src/core/lifecycle.ts +10 -0
- package/src/modules/access/__tests__/access-control.atref-cache.test.ts +144 -4
- package/src/modules/access/__tests__/access-control.group-read.test.ts +73 -0
- package/src/modules/access/__tests__/access.routes.group-grant.test.ts +66 -0
- package/src/modules/access/__tests__/access.routes.unknown-email.test.ts +2 -0
- package/src/modules/access/access-control.interface.ts +22 -0
- package/src/modules/access/access-control.service.ts +142 -14
- package/src/modules/access/access.routes.ts +22 -6
- package/src/modules/agent-instructions/shared-file-rules.ts +1 -1
- package/src/modules/diff/__tests__/diff.service.seed-atomicity.test.ts +2 -1
- package/src/modules/diff/__tests__/diff.service.test.ts +2 -1
- package/src/modules/diff/__tests__/diff.service.worktree.test.ts +76 -0
- package/src/modules/diff/diff.service.ts +6 -4
- package/src/modules/kb-fs/__tests__/git-dir.test.ts +77 -0
- package/src/modules/kb-fs/__tests__/ref-files.test.ts +338 -0
- package/src/modules/kb-fs/git-dir.ts +53 -0
- package/src/modules/kb-fs/index.ts +2 -0
- package/src/modules/kb-fs/ref-files.ts +279 -0
- package/src/modules/plugins/__tests__/teams.routes.test.ts +55 -0
- package/src/modules/plugins/teams.routes.ts +14 -1
- package/src/modules/settings/__tests__/setup.routes.layout-phase.test.ts +2 -2
- package/src/modules/settings/__tests__/setup.routes.managed-phase.test.ts +2 -2
- package/src/modules/tool-auth/internal-token.service.ts +1 -1
- package/src/modules/tool-auth/tool-auth.middleware.ts +1 -2
- package/src/modules/tool-helpers/__tests__/branch-declaration.test.ts +2 -2
- package/src/modules/tool-helpers/tool-handler.ts +2 -2
- package/src/modules/tool-helpers/tool.contract.ts +2 -2
- package/src/modules/tool-registry/__tests__/tool-description-length.test.ts +6 -1
- package/src/modules/workflow/git/__tests__/git.service.changedPathsMemo.test.ts +175 -0
- package/src/modules/workflow/git/__tests__/git.service.worktrees.test.ts +284 -0
- package/src/modules/workflow/git/git.service.ts +184 -22
- package/src/modules/workflow/workflow-hooks.ts +1 -1
- package/src/modules/workspace/__tests__/agent-downloads.test.ts +2 -2
- package/src/modules/workspace/__tests__/bounded-matcher.test.ts +213 -0
- package/src/modules/workspace/__tests__/git-internals.security.test.ts +22 -7
- package/src/modules/workspace/__tests__/kb-repository.test.ts +481 -0
- package/src/modules/workspace/__tests__/rest-tool-arguments.test.ts +14 -0
- package/src/modules/workspace/__tests__/routine-write-policy.test.ts +0 -11
- package/src/modules/workspace/__tests__/workspace-paths-inside-the-repo.test.ts +2 -2
- package/src/modules/workspace/__tests__/workspace.routes.folder-zip-access.test.ts +2 -2
- package/src/modules/workspace/__tests__/workspace.routes.folders.test.ts +4 -3
- package/src/modules/workspace/__tests__/workspace.service.any-workspace-credentials.test.ts +2 -2
- package/src/modules/workspace/__tests__/workspace.service.ensure-remotes-fetched.test.ts +2 -2
- package/src/modules/workspace/__tests__/workspace.service.forget-clone-races.test.ts +12 -5
- package/src/modules/workspace/__tests__/workspace.service.list-cloned.test.ts +6 -6
- package/src/modules/workspace/__tests__/workspace.service.move-never-overwrites.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.service.read-filter.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.service.replaced-repository.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.service.test.ts +24 -23
- package/src/modules/workspace/__tests__/workspace.service.unknown-branch.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.service.worktrees.test.ts +620 -0
- package/src/modules/workspace/__tests__/workspace.tools.agents-file.test.ts +15 -1
- package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +71 -5
- package/src/modules/workspace/__tests__/workspace.tools.test.ts +153 -298
- package/src/modules/workspace/agent-access.gate.ts +2 -2
- package/src/modules/workspace/bounded-matcher.ts +328 -0
- package/src/modules/workspace/fetch-instant.ts +13 -0
- package/src/modules/workspace/index.ts +12 -0
- package/src/modules/workspace/kb-repository.contract.ts +124 -0
- package/src/modules/workspace/kb-repository.ts +844 -0
- package/src/modules/workspace/pattern-matcher.contract.ts +69 -0
- package/src/modules/workspace/routine-write-policy.ts +0 -15
- package/src/modules/workspace/set-aside-clone.ts +140 -0
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.degraded.test.ts +3 -2
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.test.ts +12 -10
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.worktrees.test.ts +613 -0
- package/src/modules/workspace/startup/kb-startup-runner.ts +422 -29
- package/src/modules/workspace/startup/steps/__tests__/steps.test.ts +4 -3
- package/src/modules/workspace/workspace.service.ts +247 -169
- package/src/modules/workspace/workspace.tools.ts +179 -365
- package/src/test-setup.ts +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.routes.js","sourceRoot":"","sources":["../../../src/modules/plugins/teams.routes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,GAEb,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"teams.routes.js","sourceRoot":"","sources":["../../../src/modules/plugins/teams.routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ export interface InternalTokenClaim {
|
|
|
31
31
|
* connection key to pass through). The verifier resolves such tokens to
|
|
32
32
|
* `source: 'external'`: the caller IS an external agent, and must be treated
|
|
33
33
|
* like one everywhere — admitted to external-only surfaces (`start_session`,
|
|
34
|
-
* `ask`), refused from internal-only ones (`
|
|
34
|
+
* `ask`), refused from internal-only ones (`switch_branch`, …), and
|
|
35
35
|
* expected to carry `sessionId` on the tool body, not in the token.
|
|
36
36
|
*/
|
|
37
37
|
externalProxy?: boolean;
|
|
@@ -51,8 +51,7 @@ declare global {
|
|
|
51
51
|
* Gate that admits ONLY in-process callers (those bearing an internal HMAC
|
|
52
52
|
* token). Mount it AFTER `toolAuth` on every internal-only surface — the
|
|
53
53
|
* internal tool catalog and the routes of tools registered with
|
|
54
|
-
* `registerInternalTool` but NOT `registerExternalTool` (e.g. `
|
|
55
|
-
* `switch_branch`, the `sharepoint_*` reads). `toolAuth` alone is not enough:
|
|
54
|
+
* `registerInternalTool` but NOT `registerExternalTool` (e.g. `switch_branch`, the `sharepoint_*` reads). `toolAuth` alone is not enough:
|
|
56
55
|
* an external connection key authenticates successfully, so without this gate it
|
|
57
56
|
* could invoke an internal-only route directly by guessing its name. The route
|
|
58
57
|
* MUST stay mounted (our own agent reaches it over the same loopback HTTP), so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-auth.middleware.d.ts","sourceRoot":"","sources":["../../../src/modules/tool-auth/tool-auth.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmC,cAAc,EAAE,MAAM,SAAS,CAAC;AAI/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAOnE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gJAAgJ;IAChJ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iLAAiL;IACjL,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;SACrB;KACF;CACF;AAID
|
|
1
|
+
{"version":3,"file":"tool-auth.middleware.d.ts","sourceRoot":"","sources":["../../../src/modules/tool-auth/tool-auth.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmC,cAAc,EAAE,MAAM,SAAS,CAAC;AAI/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAOnE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gJAAgJ;IAChJ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iLAAiL;IACjL,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;SACrB;KACF;CACF;AAID;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAMnC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAMnC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,qBAAqB,EAAE,sBAAsB,EAC7C,oBAAoB,EAAE,oBAAoB;AAC1C;;;;;;;GAOG;AACH,QAAQ,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GACvC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,YAAY,CAAC,CA6CtD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,qBAAqB,EAAE,sBAAsB,EAC7C,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GACvC,cAAc,CAwBhB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,qBAAqB,EAAE,sBAAsB,EAC7C,oBAAoB,EAAE,oBAAoB,EAC1C,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,gBAAgB,CAAC,GAC5D,cAAc,CAgDhB"}
|
|
@@ -7,8 +7,7 @@ const WWW_AUTH = 'Bearer realm="bevel-tools"';
|
|
|
7
7
|
* Gate that admits ONLY in-process callers (those bearing an internal HMAC
|
|
8
8
|
* token). Mount it AFTER `toolAuth` on every internal-only surface — the
|
|
9
9
|
* internal tool catalog and the routes of tools registered with
|
|
10
|
-
* `registerInternalTool` but NOT `registerExternalTool` (e.g. `
|
|
11
|
-
* `switch_branch`, the `sharepoint_*` reads). `toolAuth` alone is not enough:
|
|
10
|
+
* `registerInternalTool` but NOT `registerExternalTool` (e.g. `switch_branch`, the `sharepoint_*` reads). `toolAuth` alone is not enough:
|
|
12
11
|
* an external connection key authenticates successfully, so without this gate it
|
|
13
12
|
* could invoke an internal-only route directly by guessing its name. The route
|
|
14
13
|
* MUST stay mounted (our own agent reaches it over the same loopback HTTP), so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-auth.middleware.js","sourceRoot":"","sources":["../../../src/modules/tool-auth/tool-auth.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAG5B,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAE7F,OAAO,EACL,gCAAgC,EAChC,8BAA8B,EAC9B,qCAAqC,GACtC,MAAM,+BAA+B,CAAC;AAkDvC,MAAM,QAAQ,GAAG,4BAA4B,CAAC;AAE9C
|
|
1
|
+
{"version":3,"file":"tool-auth.middleware.js","sourceRoot":"","sources":["../../../src/modules/tool-auth/tool-auth.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,8 @@ export interface ToolHandlerOptions {
|
|
|
16
16
|
writeScope?: boolean;
|
|
17
17
|
/**
|
|
18
18
|
* How this route treats `branch`, when it must differ from what its
|
|
19
|
-
* `toolDef` recorded
|
|
20
|
-
*
|
|
19
|
+
* `toolDef` recorded (`own`: the handler resolves it itself rather than
|
|
20
|
+
* being refused).
|
|
21
21
|
*/
|
|
22
22
|
branch?: BranchHandling;
|
|
23
23
|
}
|
|
@@ -37,8 +37,8 @@ export interface ToolContext {
|
|
|
37
37
|
sessionId?: string;
|
|
38
38
|
/**
|
|
39
39
|
* The branch the in-process agent's workspace is focused on, from its internal
|
|
40
|
-
* token.
|
|
41
|
-
*
|
|
40
|
+
* token. A tool may fall back to it when the model omits `branch` (`list_tool_setup`
|
|
41
|
+
* reads the focused branch's setup), so the in-app chat agent acts on its own
|
|
42
42
|
* workspace even on a branch-less call. Only set for `source: 'internal'`;
|
|
43
43
|
* external callers must name the branch explicitly (a present-but-invalid value
|
|
44
44
|
* still fails closed regardless of this).
|
|
@@ -56,6 +56,24 @@ export declare class GitService implements IGitService {
|
|
|
56
56
|
private readonly lastImplicitFetchOk;
|
|
57
57
|
private static readonly IMPLICIT_FETCH_TTL_MS;
|
|
58
58
|
private static readonly MAX_AHEAD_BEHIND_CONCURRENCY;
|
|
59
|
+
/**
|
|
60
|
+
* A change request's changed entries, keyed by the two commits its diff
|
|
61
|
+
* was read between. Two commits never change, and neither does the
|
|
62
|
+
* merge-base between them, so the three-dot diff of a pair is a fact: a
|
|
63
|
+
* push moves a tip, the pair changes, the old entry is simply never asked
|
|
64
|
+
* for again. No TTL, no invalidation.
|
|
65
|
+
*
|
|
66
|
+
* This is what a change-request listing was paying git for on every read:
|
|
67
|
+
* one `diff` per open request, polled every minute and refetched on every
|
|
68
|
+
* event, where nothing had moved. Now git is asked once per pair, which is
|
|
69
|
+
* once per push. Keyed by commits alone, not by workspace: every clone of
|
|
70
|
+
* the knowledge base holds the same objects, so the answer is the same in
|
|
71
|
+
* all of them. Bounded FIFO; the bound only caps memory.
|
|
72
|
+
*/
|
|
73
|
+
private readonly changedEntriesByCommits;
|
|
74
|
+
/** Diffs being read right now, so concurrent misses on one pair share one `git diff`. */
|
|
75
|
+
private readonly changedEntriesInFlight;
|
|
76
|
+
private static readonly CHANGED_ENTRIES_MAX;
|
|
59
77
|
constructor(workspaceService: WorkspaceService,
|
|
60
78
|
/**
|
|
61
79
|
* Workflow lifecycle hooks. This service only consults the ADVISORY
|
|
@@ -883,6 +901,13 @@ export declare class GitService implements IGitService {
|
|
|
883
901
|
paths: string[];
|
|
884
902
|
pairs: ChangedPathPair[];
|
|
885
903
|
}>;
|
|
904
|
+
/**
|
|
905
|
+
* {@link prChangedEntriesAt} for a pair of COMMITS, read once per pair
|
|
906
|
+
* (see `changedEntriesByCommits`). The caller holds the reservation, as for
|
|
907
|
+
* `prChangedEntriesAt`; a memo hit holds it for nothing, which is cheaper
|
|
908
|
+
* than a second code path around the lock.
|
|
909
|
+
*/
|
|
910
|
+
private prChangedEntriesBetweenCommits;
|
|
886
911
|
/**
|
|
887
912
|
* The merge-base commit of a change request's two branches (their origin
|
|
888
913
|
* refs), or null when they share no history. This is the "before" the CR's
|
|
@@ -1006,6 +1031,8 @@ export declare class GitService implements IGitService {
|
|
|
1006
1031
|
* broken for some other reason.
|
|
1007
1032
|
*/
|
|
1008
1033
|
private publishedPrCommits;
|
|
1034
|
+
/** The two commits a change request is read between, each resolved as {@link resolvePublishedBranch} does. */
|
|
1035
|
+
private publishedPrEnds;
|
|
1009
1036
|
/**
|
|
1010
1037
|
* `resolveBranchRef` with the preference reversed: the PUBLISHED ref
|
|
1011
1038
|
* (`origin/<branch>`, just fetched by `fetchPrRefs`) before the local head.
|
|
@@ -1178,6 +1205,8 @@ export declare class GitService implements IGitService {
|
|
|
1178
1205
|
* from a real failure are unaffected.
|
|
1179
1206
|
*/
|
|
1180
1207
|
private git;
|
|
1208
|
+
/** `run` as the repository's administrator when `cwd` is a worktree of it; as itself for a full clone. */
|
|
1209
|
+
private asRepositoryAdministrator;
|
|
1181
1210
|
/**
|
|
1182
1211
|
* {@link git}, with stdout as raw BYTES.
|
|
1183
1212
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/workflow/git/git.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAA2B,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAUtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAa/D,OAAO,EAKL,KAAK,cAAc,EAGnB,KAAK,UAAU,EAChB,MAAM,iCAAiC,CAAC;AAmBzC;;;;;GAKG;AACH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAExD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,CAwBA;AA0JD,qBAAa,UAAW,YAAW,WAAW;IAmB1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS;IA/B5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IACjE,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA8B;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAKtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAK;gBAGtC,gBAAgB,EAAE,gBAAgB;IACnD;;;;;;OAMG;IACc,KAAK,EAAE,aAAa,EACpB,EAAE,EAAE,SAAS,EACb,KAAK,GAAE,cAAqC,EAC5C,aAAa,GAAE,cAAc,GAAG,IAAW;IAC5D;;;;;;OAMG;IACc,SAAS,GAAE,UAAgC;IAG9D,OAAO,KAAK,SAAS,GAEpB;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,cAAc,CAEhC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB,CAA4D;IAEvF,sBAAsB,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IAI9E;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB,CAA4C;IAEpE,yBAAyB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,IAAI;IAIpE;;;;;OAKG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAS/C;;;;;OAKG;IACH,iBAAiB,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAUvD;;;;;;;OAOG;YACW,wBAAwB;IAiBtC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;YACW,mBAAmB;IA0B3B,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIvD,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GACzD,OAAO,CAAC,UAAU,EAAE,CAAC;IA6HxB;;;;;;;;;;;;;OAaG;YACW,kBAAkB;IA4D1B,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC;IAuEtB;;;;;;;;;OASG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACnF,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IA4EzC;;;;;;;;;;;;;;OAcG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAU1F;;;;;;;;;;OAUG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAoBnF;;;;OAIG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe7F;;;;;;;;;;OAUG;YACW,SAAS;IA2BjB,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,iBAAiB,CAAC;IAiG7B;;;;;;;;;;;;;OAaG;IACH;;;;;;;;;;;;OAYG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BrE,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAiBpC,wFAAwF;YAC1E,kBAAkB;IAmFhC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IA4H9B,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,GACpC,OAAO,CAAC,IAAI,CAAC;IAMhB,kFAAkF;YACpE,YAAY;IAiD1B;;;;;;;;;;;;;;;;;OAiBG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,QAAQ,GACb,OAAO,CACN;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE,GAC3C;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CACzC;IA0ED;;;;;;;;;;;;;;OAcG;IACG,kBAAkB,CACtB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EACzC,IAAI,EAAE,QAAQ,EACd,IAAI,GAAE;QACJ;;;;;;;;;;;WAWG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B;;;;;;;;;;;WAWG;QACH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,EAAE,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/E;;;;;;;;;WASG;QACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,iGAAiG;QACjG,kBAAkB,CAAC,EAAE,MAAM,CAAC;KACxB,GACL,OAAO,CAAC,kBAAkB,CAAC;IAiJ9B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,0BAA0B,CAC9B,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA2BzB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;YACW,gBAAgB;IAuB9B,6EAA6E;YAC/D,eAAe;IAS7B;;;;;OAKG;YACW,oBAAoB;IAoB5B,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;YACW,sBAAsB;IAWpC,6EAA6E;IAC7E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAA8C;IAEpF;;;;OAIG;YACW,gBAAgB;IAK9B;;;;OAIG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/E,yFAAyF;YAC3E,eAAe;YAUf,eAAe;IAU7B,oEAAoE;YACtD,kBAAkB;IAKhC,mGAAmG;YACrF,cAAc;IAW5B;;;OAGG;YACW,6BAA6B;IAU3C;;;;OAIG;YACW,gBAAgB;IAsH9B;;;;OAIG;YACW,mBAAmB;IAqB3B,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA0ClE,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO,GACtC,OAAO,CAAC;QAAE,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAoBpC;;;;;;;;;;;;;;;;;;OAkBG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D;;;;;;;;;;;;;;;OAeG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc/D;;;;;OAKG;YACW,oBAAoB;IAYlC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,kBAAkB,CACtB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC9E,EAAE,GACF,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,CAAC;IA0ExF;;;;;;;;;;;;;;;OAeG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjE,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBlF;;;;;;;OAOG;IACG,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC;IAclB;;;;;OAKG;IACG,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC;IAyBb,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoB/D,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ5D;;;;OAIG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQxD,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,KAAK,SAAK,GACT,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA2DzB,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC;IA2ClB;;;;;;;OAOG;IACG,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAiCzD,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAoElB;;;;;OAKG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBhD;;;;;;;;;;;;;;;;;;OAkBG;IACG,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAO,GAC1E,OAAO,CAAC,eAAe,EAAE,CAAC;IAuB7B;;;;;;;;;;;;;OAaG;YACW,eAAe;IAwE7B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;YACW,WAAW;IAuDzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAKhD;;;;;;;;;;;;;OAaG;IACG,2BAA2B,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,gBAAgB,EACzB,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/B,OAAO,CAAC,eAAe,EAAE,CAAC;IAQ7B;;;;;OAKG;IACG,mCAAmC,CACvC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAYzD;;;;;;;;;;;;;;;;;;;OAmBG;IACG,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;QACJ,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB;;;;;;WAMG;QACH,cAAc,CAAC,EAAE,OAAO,CAAC;KACrB,GACL,OAAO,CAAC,MAAM,EAAE,CAAC;IA4BpB;;;;;OAKG;YACW,gBAAgB;IAS9B;;;;;;;;;;;OAWG;YACW,kBAAkB;IAQhC;;;;OAIG;YACW,wBAAwB;IAQtC;;;;;OAKG;IACG,yBAAyB,CAC7B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAC7B,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAmBzD;;;;;OAKG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAoBzB;;;;;;;;;;;;OAYG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GACvC,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAuB5D;;;;;;;;;;;;;;;OAeG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC;IAkBpB;;;;;;OAMG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0BzB;;;;;OAKG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBnG;;;;;;OAMG;IACG,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC;IAOhB,gGAAgG;YAClF,mBAAmB;IA0BjC,gFAAgF;YAClE,WAAW;IAsBzB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,kBAAkB;IAkB1B,0EAA0E;YAC5D,cAAc;IA2B5B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,eAAe;IAMvB;;;;;;;;OAQG;YACW,kBAAkB;IAiBhC;;;;;;;;OAQG;YACW,yBAAyB;IAIvC;;;;OAIG;YACW,sBAAsB;IAmBpC;;;;;;OAMG;YACW,gBAAgB;YAchB,cAAc;YA2Dd,aAAa;IAK3B;;;;;;OAMG;YACW,oBAAoB;YAoBpB,cAAc;IAmB5B;;;;;;OAMG;IACH;;;;;;;;;OASG;YACW,kBAAkB;IAiC1B,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAqBzB;;;;;;;;;;;;;;;;;;OAkBG;YACW,SAAS;IAkCvB;;;;;;;;;;;;;;;;;;;OAmBG;YACW,qBAAqB;IA8BnC;;;;;;;;;;;;;OAaG;IACG,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,GAAG,QAAQ,GACvB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAepD;;;;;OAKG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC;IAYpB;;;;;OAKG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMzF;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAW3E;;;;;;;;;;;;;;;;;OAiBG;YACW,uBAAuB;YAavB,OAAO;YAIP,eAAe;IAW7B;;;;;;;;;OASG;IACH,OAAO,CAAC,GAAG;IAkBX;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ;CAWjB;AAeD,UAAU,eAAe;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAmED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAsB/D;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAOhF;AAED,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAwBzD"}
|
|
1
|
+
{"version":3,"file":"git.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/workflow/git/git.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { WorkspaceMutex } from '../../kb-fs/mutex.js';
|
|
|
8
8
|
import { isAbsence } from '../../../shared/fs.contract.js';
|
|
9
9
|
import { assertInsideRepo } from '../../kb-fs/repo-path.js';
|
|
10
10
|
import { cloneTrackingConfigArgs, SAFE_IMPLICIT_FETCH_ARGS } from '../../kb-fs/clone-config.js';
|
|
11
|
+
import { readRefSha } from '../../kb-fs/index.js';
|
|
11
12
|
import { assertValidBranchName, assertValidRelativePath, isBranchAuthoredBy, isOwnSuggestionsBranch, } from '../../kb-fs/branch-name.js';
|
|
12
13
|
import { AppliedChangeMismatchError, BranchAuthorshipError, BranchDeleteRefusedError, WorkflowDomainError, WorkflowValidationError, ProtectedBranchError, PullRebaseConflictError, RemoteBranchGoneError, VersionNotOnBranchError, isMissingRemoteBranchFailure, } from '../../../shared/domain-errors.js';
|
|
13
14
|
import { GitRunError, assertOneSpecPerLine, isGitTimeout, redactGitToken, } from '../../../shared/git.contract.js';
|
|
@@ -243,6 +244,24 @@ export class GitService {
|
|
|
243
244
|
// concurrent processes worst case — fast for typical (<8) feature-branch
|
|
244
245
|
// counts, calm under large branch lists.
|
|
245
246
|
static MAX_AHEAD_BEHIND_CONCURRENCY = 8;
|
|
247
|
+
/**
|
|
248
|
+
* A change request's changed entries, keyed by the two commits its diff
|
|
249
|
+
* was read between. Two commits never change, and neither does the
|
|
250
|
+
* merge-base between them, so the three-dot diff of a pair is a fact: a
|
|
251
|
+
* push moves a tip, the pair changes, the old entry is simply never asked
|
|
252
|
+
* for again. No TTL, no invalidation.
|
|
253
|
+
*
|
|
254
|
+
* This is what a change-request listing was paying git for on every read:
|
|
255
|
+
* one `diff` per open request, polled every minute and refetched on every
|
|
256
|
+
* event, where nothing had moved. Now git is asked once per pair, which is
|
|
257
|
+
* once per push. Keyed by commits alone, not by workspace: every clone of
|
|
258
|
+
* the knowledge base holds the same objects, so the answer is the same in
|
|
259
|
+
* all of them. Bounded FIFO; the bound only caps memory.
|
|
260
|
+
*/
|
|
261
|
+
changedEntriesByCommits = new Map();
|
|
262
|
+
/** Diffs being read right now, so concurrent misses on one pair share one `git diff`. */
|
|
263
|
+
changedEntriesInFlight = new Map();
|
|
264
|
+
static CHANGED_ENTRIES_MAX = 4096;
|
|
246
265
|
constructor(workspaceService,
|
|
247
266
|
/**
|
|
248
267
|
* Workflow lifecycle hooks. This service only consults the ADVISORY
|
|
@@ -321,7 +340,9 @@ export class GitService {
|
|
|
321
340
|
* above rather than kept separately, so it cannot disagree with it.
|
|
322
341
|
*/
|
|
323
342
|
lastRemoteContact() {
|
|
324
|
-
|
|
343
|
+
// The repository's fetches are every worktree's; the per-workspace record
|
|
344
|
+
// is a full clone's.
|
|
345
|
+
let latest = this.workspaceService.repository?.lastContact() ?? null;
|
|
325
346
|
for (const [workspaceId, at] of this.lastImplicitFetchAt) {
|
|
326
347
|
if (latest === null || at > latest.at) {
|
|
327
348
|
latest = { at, ok: this.lastImplicitFetchOk.get(workspaceId) ?? false };
|
|
@@ -419,12 +440,22 @@ export class GitService {
|
|
|
419
440
|
// Union local heads with origin's remote-tracking refs: a fresh per-user
|
|
420
441
|
// clone only has one local head (HEAD's default), so without this we'd hide
|
|
421
442
|
// target-company-state and every draft pushed by another user.
|
|
443
|
+
//
|
|
444
|
+
// The workspace is a worktree of the one repository, which holds every
|
|
445
|
+
// OTHER worktree's local branch too. Those are not this workspace's: a
|
|
446
|
+
// clone never had them. A local head checked out in another worktree
|
|
447
|
+
// is read as that branch's remote-tracking ref alone (and not at all
|
|
448
|
+
// once origin no longer has it), so a branch deleted on origin is not
|
|
449
|
+
// kept alive by its own worktree's local ref — the orphan sweep reads
|
|
450
|
+
// this list. A branch is checked out in at most one worktree, so "not
|
|
451
|
+
// this one's HEAD" is "another's".
|
|
422
452
|
const { stdout } = await this.git(cwd, [
|
|
423
453
|
'for-each-ref',
|
|
424
|
-
'--format=%(refname:short)%09%(refname)',
|
|
454
|
+
'--format=%(refname:short)%09%(refname)%09%(worktreepath)',
|
|
425
455
|
'refs/heads',
|
|
426
456
|
'refs/remotes/origin',
|
|
427
457
|
]);
|
|
458
|
+
const ownBranch = (await this.git(cwd, ['symbolic-ref', '--quiet', '--short', 'HEAD']).then((r) => r.stdout, () => '')).trim();
|
|
428
459
|
const buckets = new Map();
|
|
429
460
|
for (const line of stdout.split('\n')) {
|
|
430
461
|
const trimmed = line.trim();
|
|
@@ -434,7 +465,7 @@ export class GitService {
|
|
|
434
465
|
if (tab < 0)
|
|
435
466
|
continue;
|
|
436
467
|
const rawShort = trimmed.slice(0, tab);
|
|
437
|
-
const ref = trimmed.slice(tab + 1);
|
|
468
|
+
const [ref = '', worktreePath = ''] = trimmed.slice(tab + 1).split('\t');
|
|
438
469
|
if (!rawShort || !ref)
|
|
439
470
|
continue;
|
|
440
471
|
// Skip symbolic refs up-front. Different git versions report
|
|
@@ -447,6 +478,8 @@ export class GitService {
|
|
|
447
478
|
const shortName = isLocal ? rawShort : rawShort.replace(/^origin\//, '');
|
|
448
479
|
if (!shortName)
|
|
449
480
|
continue;
|
|
481
|
+
if (isLocal && worktreePath !== '' && shortName !== ownBranch)
|
|
482
|
+
continue;
|
|
450
483
|
// Final guard: the strip above turns `origin/HEAD` into `HEAD`. Even
|
|
451
484
|
// if a future git version lands us here, don't bucket it as a branch.
|
|
452
485
|
if (shortName === 'HEAD')
|
|
@@ -530,6 +563,20 @@ export class GitService {
|
|
|
530
563
|
* and the object store, neither of which checkout/status/commit touch.
|
|
531
564
|
*/
|
|
532
565
|
async fetchOriginIfStale(cwd, workspaceId, force = false) {
|
|
566
|
+
// A worktree's remote-tracking refs are the repository's: ONE fetch for
|
|
567
|
+
// every workspace, throttled, joined and reserved there. The per-workspace
|
|
568
|
+
// record below is for a full clone from an earlier release, which fetches
|
|
569
|
+
// on its own until the boot phase converts it.
|
|
570
|
+
const repository = (await this.workspaceService.repositoryOfCheckout?.(cwd)) ?? null;
|
|
571
|
+
if (repository) {
|
|
572
|
+
return repository.fetch({
|
|
573
|
+
maxAgeMs: GitService.IMPLICIT_FETCH_TTL_MS,
|
|
574
|
+
// A host that is down is not asked again by every poll inside the
|
|
575
|
+
// window, as the per-workspace record below stamps a failure too.
|
|
576
|
+
failureBackoffMs: GitService.IMPLICIT_FETCH_TTL_MS,
|
|
577
|
+
force,
|
|
578
|
+
});
|
|
579
|
+
}
|
|
533
580
|
const last = this.lastImplicitFetchAt.get(workspaceId) ?? 0;
|
|
534
581
|
if (!force && Date.now() - last < GitService.IMPLICIT_FETCH_TTL_MS) {
|
|
535
582
|
return this.lastImplicitFetchOk.get(workspaceId) ?? true;
|
|
@@ -603,8 +650,9 @@ export class GitService {
|
|
|
603
650
|
// navigation to the new draft's URL fails with
|
|
604
651
|
// "Remote branch <name> not found in upstream origin". Roll the local
|
|
605
652
|
// ref back on failure so a retry isn't blocked by "branch already exists".
|
|
653
|
+
// No `-u`: the local head is dropped right below, and its upstream with it.
|
|
606
654
|
try {
|
|
607
|
-
await this.git(cwd, ['push', '
|
|
655
|
+
await this.git(cwd, ['push', 'origin', name]);
|
|
608
656
|
}
|
|
609
657
|
catch (err) {
|
|
610
658
|
await this.git(cwd, ['branch', '-D', name]).catch(() => undefined);
|
|
@@ -725,7 +773,15 @@ export class GitService {
|
|
|
725
773
|
let localTip = null;
|
|
726
774
|
if (await this.refExists(cwd, `refs/heads/${name}`)) {
|
|
727
775
|
localTip = await this.revParseOrNull(cwd, `refs/heads/${name}`);
|
|
728
|
-
await this.git(cwd, ['branch', '-D', name])
|
|
776
|
+
await this.git(cwd, ['branch', '-D', name]).catch((err) => {
|
|
777
|
+
// In a repository of worktrees the branch's local ref is shared, and
|
|
778
|
+
// git keeps it while the branch's own workspace has it checked out.
|
|
779
|
+
// Removing that workspace — which the caller does next — takes the
|
|
780
|
+
// worktree and the ref with it.
|
|
781
|
+
if (/checked out at|used by worktree/i.test(err instanceof Error ? err.message : String(err)))
|
|
782
|
+
return;
|
|
783
|
+
throw err;
|
|
784
|
+
});
|
|
729
785
|
}
|
|
730
786
|
return { lastCommit: remoteTip ?? localTip };
|
|
731
787
|
});
|
|
@@ -1221,7 +1277,14 @@ export class GitService {
|
|
|
1221
1277
|
const touched = await this.unpushedTouchedPaths(cwd);
|
|
1222
1278
|
await this.assertCanWriteAtRef(workspaceId, `origin/${branch}`, user.email, touched);
|
|
1223
1279
|
}
|
|
1224
|
-
|
|
1280
|
+
// No `-u`: it writes the upstream into the config during the push, and
|
|
1281
|
+
// a worktree's config is the repository's, shared by every workspace —
|
|
1282
|
+
// git refuses a second writer of it rather than waiting. The upstream is
|
|
1283
|
+
// stamped after the push instead, as one short write made as the
|
|
1284
|
+
// repository's administrator (see `git`).
|
|
1285
|
+
await this.git(cwd, ['push', 'origin', branch]);
|
|
1286
|
+
await this.git(cwd, ['config', '--replace-all', `branch.${branch}.remote`, 'origin']);
|
|
1287
|
+
await this.git(cwd, ['config', '--replace-all', `branch.${branch}.merge`, `refs/heads/${branch}`]);
|
|
1225
1288
|
}
|
|
1226
1289
|
}
|
|
1227
1290
|
// `forcePush` method removed. The workflow layer no longer auto-force-pushes
|
|
@@ -2745,9 +2808,8 @@ export class GitService {
|
|
|
2745
2808
|
await this.fetchPrRefs(cwd, baseBranch, headBranch);
|
|
2746
2809
|
}
|
|
2747
2810
|
return this.mutex.run(workspaceId, async () => {
|
|
2748
|
-
const
|
|
2749
|
-
|
|
2750
|
-
return this.prChangedPathsAt(cwd, baseRef, headRef, opts);
|
|
2811
|
+
const at = pinned ?? (await this.publishedPrEnds(cwd, baseBranch, headBranch));
|
|
2812
|
+
return flattenChangedPaths(await this.prChangedEntriesBetweenCommits(cwd, at.base, at.head), opts);
|
|
2751
2813
|
});
|
|
2752
2814
|
}
|
|
2753
2815
|
/**
|
|
@@ -2800,12 +2862,49 @@ export class GitService {
|
|
|
2800
2862
|
await this.fetchPrRefs(cwd, baseBranch, headBranch);
|
|
2801
2863
|
}
|
|
2802
2864
|
return this.mutex.run(workspaceId, async () => {
|
|
2803
|
-
const
|
|
2804
|
-
const
|
|
2805
|
-
const entries = await this.prChangedEntriesAt(cwd, baseRef, headRef);
|
|
2865
|
+
const at = pinned ?? (await this.publishedPrEnds(cwd, baseBranch, headBranch));
|
|
2866
|
+
const entries = await this.prChangedEntriesBetweenCommits(cwd, at.base, at.head);
|
|
2806
2867
|
return { paths: flattenChangedPaths(entries, {}), pairs: changedPathPairs(entries) };
|
|
2807
2868
|
});
|
|
2808
2869
|
}
|
|
2870
|
+
/**
|
|
2871
|
+
* {@link prChangedEntriesAt} for a pair of COMMITS, read once per pair
|
|
2872
|
+
* (see `changedEntriesByCommits`). The caller holds the reservation, as for
|
|
2873
|
+
* `prChangedEntriesAt`; a memo hit holds it for nothing, which is cheaper
|
|
2874
|
+
* than a second code path around the lock.
|
|
2875
|
+
*/
|
|
2876
|
+
async prChangedEntriesBetweenCommits(cwd, baseSha, headSha) {
|
|
2877
|
+
const key = `${baseSha}\0${headSha}`;
|
|
2878
|
+
const known = this.changedEntriesByCommits.get(key);
|
|
2879
|
+
if (known)
|
|
2880
|
+
return known;
|
|
2881
|
+
let pending = this.changedEntriesInFlight.get(key);
|
|
2882
|
+
if (!pending) {
|
|
2883
|
+
pending = this.prChangedEntriesAt(cwd, baseSha, headSha)
|
|
2884
|
+
.then((entries) => {
|
|
2885
|
+
if (this.changedEntriesByCommits.size >= GitService.CHANGED_ENTRIES_MAX) {
|
|
2886
|
+
const oldest = this.changedEntriesByCommits.keys().next().value;
|
|
2887
|
+
if (oldest !== undefined)
|
|
2888
|
+
this.changedEntriesByCommits.delete(oldest);
|
|
2889
|
+
}
|
|
2890
|
+
this.changedEntriesByCommits.set(key, entries);
|
|
2891
|
+
return entries;
|
|
2892
|
+
})
|
|
2893
|
+
.finally(() => {
|
|
2894
|
+
if (this.changedEntriesInFlight.get(key) === pending)
|
|
2895
|
+
this.changedEntriesInFlight.delete(key);
|
|
2896
|
+
});
|
|
2897
|
+
// Same bound as the memo: evicting an in-flight entry costs at most one
|
|
2898
|
+
// redundant diff for that pair, never a lost answer.
|
|
2899
|
+
if (this.changedEntriesInFlight.size >= GitService.CHANGED_ENTRIES_MAX) {
|
|
2900
|
+
const oldest = this.changedEntriesInFlight.keys().next().value;
|
|
2901
|
+
if (oldest !== undefined)
|
|
2902
|
+
this.changedEntriesInFlight.delete(oldest);
|
|
2903
|
+
}
|
|
2904
|
+
this.changedEntriesInFlight.set(key, pending);
|
|
2905
|
+
}
|
|
2906
|
+
return pending;
|
|
2907
|
+
}
|
|
2809
2908
|
/**
|
|
2810
2909
|
* The merge-base commit of a change request's two branches (their origin
|
|
2811
2910
|
* refs), or null when they share no history. This is the "before" the CR's
|
|
@@ -3103,18 +3202,20 @@ export class GitService {
|
|
|
3103
3202
|
* broken for some other reason.
|
|
3104
3203
|
*/
|
|
3105
3204
|
async publishedPrCommits(cwd, baseBranch, headBranch) {
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
try {
|
|
3109
|
-
shas.push((await this.resolvePublishedBranch(cwd, branch)).sha);
|
|
3110
|
-
}
|
|
3111
|
-
catch (err) {
|
|
3112
|
-
if (err instanceof WorkflowValidationError)
|
|
3113
|
-
return null;
|
|
3114
|
-
throw err;
|
|
3115
|
-
}
|
|
3205
|
+
try {
|
|
3206
|
+
return await this.publishedPrEnds(cwd, baseBranch, headBranch);
|
|
3116
3207
|
}
|
|
3117
|
-
|
|
3208
|
+
catch (err) {
|
|
3209
|
+
if (err instanceof WorkflowValidationError)
|
|
3210
|
+
return null;
|
|
3211
|
+
throw err;
|
|
3212
|
+
}
|
|
3213
|
+
}
|
|
3214
|
+
/** The two commits a change request is read between, each resolved as {@link resolvePublishedBranch} does. */
|
|
3215
|
+
async publishedPrEnds(cwd, baseBranch, headBranch) {
|
|
3216
|
+
const base = (await this.resolvePublishedBranch(cwd, baseBranch)).sha;
|
|
3217
|
+
const head = (await this.resolvePublishedBranch(cwd, headBranch)).sha;
|
|
3218
|
+
return { base, head };
|
|
3118
3219
|
}
|
|
3119
3220
|
/**
|
|
3120
3221
|
* `resolveBranchRef` with the preference reversed: the PUBLISHED ref
|
|
@@ -3135,6 +3236,15 @@ export class GitService {
|
|
|
3135
3236
|
*/
|
|
3136
3237
|
async resolvePublishedBranch(cwd, branch) {
|
|
3137
3238
|
for (const ref of [`refs/remotes/origin/${branch}`, `refs/heads/${branch}`]) {
|
|
3239
|
+
// The ref file first (`readRefSha`): no process, same answer, same
|
|
3240
|
+
// freshness. Git is asked only for what the files cannot decide — a
|
|
3241
|
+
// missing ref is decided by the files and the loop moves on; an
|
|
3242
|
+
// unreadable one is git's to answer, as the authority.
|
|
3243
|
+
const fromFiles = await readRefSha(cwd, ref);
|
|
3244
|
+
if (fromFiles === 'missing')
|
|
3245
|
+
continue;
|
|
3246
|
+
if (fromFiles !== 'unreadable')
|
|
3247
|
+
return { ref, sha: fromFiles.sha };
|
|
3138
3248
|
try {
|
|
3139
3249
|
const { stdout } = await this.git(cwd, ['rev-parse', '--verify', '--quiet', ref]);
|
|
3140
3250
|
return { ref, sha: stdout.trim() };
|
|
@@ -3558,7 +3668,7 @@ export class GitService {
|
|
|
3558
3668
|
* from a real failure are unaffected.
|
|
3559
3669
|
*/
|
|
3560
3670
|
git(cwd, args, opts) {
|
|
3561
|
-
|
|
3671
|
+
const run = () => this.gitRunner.run(cwd, args, {
|
|
3562
3672
|
...opts,
|
|
3563
3673
|
// `GIT_LITERAL_PATHSPECS=1` makes git treat every pathspec literally
|
|
3564
3674
|
// instead of interpreting `[`, `]`, `*`, `?`, `!`, or `:(magic)` as glob
|
|
@@ -3573,6 +3683,17 @@ export class GitService {
|
|
|
3573
3683
|
// a search for a file literally named that.
|
|
3574
3684
|
env: { GIT_LITERAL_PATHSPECS: '1', ...opts?.env },
|
|
3575
3685
|
});
|
|
3686
|
+
// A write to the git config is a write to the ONE file every worktree of
|
|
3687
|
+
// the repository shares, which git refuses a second writer of rather than
|
|
3688
|
+
// waiting: it runs as the repository's administrator. Everything else —
|
|
3689
|
+
// a fetch, a commit, a branch delete — git serializes with its own locks,
|
|
3690
|
+
// as it does for any two worktrees of one repository.
|
|
3691
|
+
return writesSharedConfig(args) ? this.asRepositoryAdministrator(cwd, run) : run();
|
|
3692
|
+
}
|
|
3693
|
+
/** `run` as the repository's administrator when `cwd` is a worktree of it; as itself for a full clone. */
|
|
3694
|
+
async asRepositoryAdministrator(cwd, run) {
|
|
3695
|
+
const repository = (await this.workspaceService.repositoryOfCheckout?.(cwd)) ?? null;
|
|
3696
|
+
return repository ? repository.exclusive(run) : run();
|
|
3576
3697
|
}
|
|
3577
3698
|
/**
|
|
3578
3699
|
* {@link git}, with stdout as raw BYTES.
|
|
@@ -3746,4 +3867,36 @@ export function parseNumstatZ(out) {
|
|
|
3746
3867
|
}
|
|
3747
3868
|
return entries;
|
|
3748
3869
|
}
|
|
3870
|
+
/**
|
|
3871
|
+
* Whether a git command WRITES the config — the one file every worktree of
|
|
3872
|
+
* the knowledge base's repository shares, which git refuses a second writer
|
|
3873
|
+
* of rather than waiting — and so must run as the repository's administrator
|
|
3874
|
+
* (`IKbRepository.exclusive`): a `config` that sets or unsets, a `remote`
|
|
3875
|
+
* change, a branch rename, delete or upstream change (its config section is
|
|
3876
|
+
* written, or removed with the branch), a push that sets the upstream. Reads
|
|
3877
|
+
* of the config are not writes. Nothing else is: the refs, `packed-refs` and
|
|
3878
|
+
* the object store are locked by git itself, and the worktree list is the
|
|
3879
|
+
* repository's own to serialize (`KbRepository`).
|
|
3880
|
+
*
|
|
3881
|
+
* Leading `-c key=value` / `-C dir` options are skipped to find the subcommand.
|
|
3882
|
+
*/
|
|
3883
|
+
function writesSharedConfig(args) {
|
|
3884
|
+
let i = 0;
|
|
3885
|
+
while (i < args.length && (args[i] === '-c' || args[i] === '-C'))
|
|
3886
|
+
i += 2;
|
|
3887
|
+
const sub = args[i];
|
|
3888
|
+
const rest = args.slice(i + 1);
|
|
3889
|
+
switch (sub) {
|
|
3890
|
+
case 'remote':
|
|
3891
|
+
return true;
|
|
3892
|
+
case 'config':
|
|
3893
|
+
return !rest.some((a) => /^(--get|--get-all|--get-regexp|--list|-l|--show-origin)$/.test(a));
|
|
3894
|
+
case 'branch':
|
|
3895
|
+
return rest.some((a) => /^(-d|-D|--delete|-m|-M|--move|-u|--set-upstream-to=.*|--unset-upstream)$/.test(a));
|
|
3896
|
+
case 'push':
|
|
3897
|
+
return rest.some((a) => a === '-u' || a === '--set-upstream');
|
|
3898
|
+
default:
|
|
3899
|
+
return false;
|
|
3900
|
+
}
|
|
3901
|
+
}
|
|
3749
3902
|
//# sourceMappingURL=git.service.js.map
|