mossbear 0.1.0-alpha.44 → 0.1.0-alpha.45
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/dashboard-health.d.ts.map +1 -1
- package/dist/dashboard-health.js +26 -12
- package/dist/dashboard-health.js.map +1 -1
- package/dist/docs/guide-projection.d.ts.map +1 -1
- package/dist/docs/guide-projection.js +13 -1
- package/dist/docs/guide-projection.js.map +1 -1
- package/dist/repo-id.d.ts.map +1 -1
- package/dist/repo-id.js +104 -11
- package/dist/repo-id.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-health.d.ts","sourceRoot":"","sources":["../src/dashboard-health.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,cAAc,CAAA;AAgBhE,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAEnF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,MAAM,EACpB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"dashboard-health.d.ts","sourceRoot":"","sources":["../src/dashboard-health.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,cAAc,CAAA;AAgBhE,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAEnF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,MAAM,EACpB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAuCR;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAK7E;AAqCD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGzD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CA+BR;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAmBR"}
|
package/dist/dashboard-health.js
CHANGED
|
@@ -50,9 +50,12 @@ export function describeDashboardHealth(health, dashboardUrl, env = process.env)
|
|
|
50
50
|
return `Dashboard connection: token rejected by ${dashboardUrl} — it may be expired or revoked; ${remedy}`;
|
|
51
51
|
}
|
|
52
52
|
case 'blocked': {
|
|
53
|
-
// A 403 the
|
|
54
|
-
//
|
|
55
|
-
//
|
|
53
|
+
// A 403 the probed endpoint never sends — `verifyDashboardToken` reaches
|
|
54
|
+
// the guide bundle, which answers 401 for a bad credential and never 403
|
|
55
|
+
// (`token-verify.ts`, the same scoping its own comment uses; a route that
|
|
56
|
+
// does 403 tags it, and this probe reaches none of them). So something in
|
|
57
|
+
// between refused the request, and in a managed cloud environment that is
|
|
58
|
+
// nearly always an egress proxy enforcing a host allowlist.
|
|
56
59
|
const proxyVar = proxyEnvVarName(env);
|
|
57
60
|
const proxyNote = proxyVar ? ` (${proxyVar} is set)` : '';
|
|
58
61
|
return `Dashboard connection: request to ${dashboardUrl} refused with 403 by something between this machine and the dashboard${proxyNote} — the token was NOT rejected. If this environment enforces an egress allowlist, ${hostOf(dashboardUrl)} likely needs to be added to it`;
|
|
@@ -110,21 +113,30 @@ export function classifyRequestFailure(err) {
|
|
|
110
113
|
* - **4xx only.** A 5xx is `classifyDashboardStatus`'s 'unreachable': the
|
|
111
114
|
* request did not get an answer about itself, and the sentence a 500 carries
|
|
112
115
|
* is not a remedy the reader can act on.
|
|
113
|
-
* - **Never 401
|
|
114
|
-
* ({@link describeConnectionFailure})
|
|
115
|
-
*
|
|
116
|
-
*
|
|
116
|
+
* - **Never 401.** That is the connection vocabulary
|
|
117
|
+
* ({@link describeConnectionFailure}) whatever the body carries: a rejected
|
|
118
|
+
* token is a state of this machine, and its remedy depends on where the token
|
|
119
|
+
* came from — which the CLI knows and the route does not.
|
|
120
|
+
* - **A 403 only when it is tagged.** A 403 is otherwise read as *something in
|
|
121
|
+
* between refused us*, because an egress proxy's 403 and a route's own look
|
|
122
|
+
* identical by status. The `code` is what tells them apart: every one on this
|
|
123
|
+
* API is written by the dashboard's shared error helper, and an intermediary
|
|
124
|
+
* refusing the host writes no such body — so an untagged 403 keeps the
|
|
125
|
+
* 'blocked' copy unchanged, whatever else is in it.
|
|
117
126
|
* - **A sentence, not merely a body.** `serverMessage` is `null` for HTML from a
|
|
118
127
|
* gateway or plain text from a crash, which keeps the status form.
|
|
119
128
|
*
|
|
120
|
-
* The route this exists for is the rules import: its `workspace-
|
|
121
|
-
* and its per-file 400s name a file, a
|
|
122
|
-
* has nothing to add to any of them
|
|
129
|
+
* The route this exists for is the rules import: its `workspace-unreachable`
|
|
130
|
+
* 403, its `workspace-ambiguous` 409 and its per-file 400s name a file, a
|
|
131
|
+
* workspace and a next step, and the CLI has nothing to add to any of them
|
|
132
|
+
* (`error-messaging.md` rule 4).
|
|
123
133
|
*/
|
|
124
134
|
function answeredRequest(err) {
|
|
125
135
|
if (err.serverMessage === null)
|
|
126
136
|
return false;
|
|
127
|
-
if (err.status === 401
|
|
137
|
+
if (err.status === 401)
|
|
138
|
+
return false;
|
|
139
|
+
if (err.status === 403 && err.code === null)
|
|
128
140
|
return false;
|
|
129
141
|
return err.status >= 400 && err.status < 500;
|
|
130
142
|
}
|
|
@@ -180,7 +192,9 @@ export function describeConnectionFailure(failure, subject, dashboardUrl, retry,
|
|
|
180
192
|
return `could not ${subject} — ${host} rejected your token; it may be expired or revoked. ${remedy}, then \`${retry}\`.`;
|
|
181
193
|
}
|
|
182
194
|
case 'blocked': {
|
|
183
|
-
//
|
|
195
|
+
// An *untagged* 403: a route that means to be read tags its refusal, and
|
|
196
|
+
// {@link answeredRequest} routes a tagged one to the route's own
|
|
197
|
+
// sentence — so what is left here came from something in between. The
|
|
184
198
|
// variable NAME only: proxy URLs can embed credentials.
|
|
185
199
|
const proxyVar = proxyEnvVarName(env);
|
|
186
200
|
const proxyNote = proxyVar ? ` (${proxyVar} is set)` : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-health.js","sourceRoot":"","sources":["../src/dashboard-health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAW3D;;;;GAIG;AACH,MAAM,cAAc,GAAG;IACrB,aAAa;IACb,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,WAAW;CACH,CAAA;AAEV,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,MAAyB,OAAO,CAAC,GAAG;IAClE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAA;AAC/E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAuB,EACvB,YAAoB,EACpB,MAAyB,OAAO,CAAC,GAAG;IAEpC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,cAAc;YACjB,OAAO,2FAA2F,CAAA;QACpG,KAAK,IAAI;YACP,OAAO,kCAAkC,YAAY,GAAG,CAAA;QAC1D,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,wEAAwE;YACxE,qEAAqE;YACrE,uEAAuE;YACvE,uEAAuE;YACvE,yEAAyE;YACzE,mEAAmE;YACnE,0CAA0C;YAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC;gBAC9B,CAAC,CAAC,wBAAwB,kBAAkB,0CAA0C;gBACtF,CAAC,CAAC,gDAAgD,CAAA;YACpD,OAAO,2CAA2C,YAAY,oCAAoC,MAAM,EAAE,CAAA;QAC5G,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,
|
|
1
|
+
{"version":3,"file":"dashboard-health.js","sourceRoot":"","sources":["../src/dashboard-health.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide-projection.d.ts","sourceRoot":"","sources":["../../src/docs/guide-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAaH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAEjE;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,cAAc,IAAI,OAAO,CAAA;KAAE,CAAC,CAAA;CACnE,CAAA;AAED,MAAM,MAAM,eAAe,GACvB;IACE,EAAE,EAAE,IAAI,CAAA;IACR,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAA;IAClB,8CAA8C;IAC9C,KAAK,EAAE,kBAAkB,CAAA;CAC1B,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAgDjC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,sBAAiC,CAAA;AAElE,oFAAoF;AACpF,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,CAAA;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC1B,+EAA+E;IAC/E,KAAK,EAAE,kBAAkB,CAAA;IACzB,0EAA0E;IAC1E,KAAK,EAAE,SAAS,CAAA;IAChB,sEAAsE;IACtE,MAAM,EAAE,UAAU,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,CAAA;IAC5C,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACvC,GAAG,aAAa,CAiBhB;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE;IACJ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAClC,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,CAAA;IAC5C,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACjC,EACD,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,EACpC,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,eAAe,CAAC,CA+C1B;AA2ED;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,iBAAiB,GAAG,sBAAsB,GACnD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"guide-projection.d.ts","sourceRoot":"","sources":["../../src/docs/guide-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
*/
|
|
33
33
|
import { lstat, realpath } from 'node:fs/promises';
|
|
34
34
|
import { dirname, isAbsolute, relative, resolve, sep } from 'node:path';
|
|
35
|
-
import { isReservedStatePath } from '@mossbear/protocol';
|
|
35
|
+
import { isGitInternalPath, isReservedStatePath } from '@mossbear/protocol';
|
|
36
36
|
import { safeItemFileName } from '../mcp/write-items.js';
|
|
37
37
|
import { MOSSBEAR_GLOBAL_DIR } from '../mossbear-paths.js';
|
|
38
38
|
import { EVAL_SHADOW_DIR, classifyLocalItemPath } from '../rules/eval-path.js';
|
|
@@ -326,6 +326,18 @@ export function refuseUnsafeDeclaredPath(label, path, reserved) {
|
|
|
326
326
|
if (hasControlCharacters(path)) {
|
|
327
327
|
return { ok: false, reason: `${label} path contains control characters` };
|
|
328
328
|
}
|
|
329
|
+
// Unconditional, unlike the reserved-state check below: no content type has
|
|
330
|
+
// a legitimate landing place inside git's own directory, and the write is
|
|
331
|
+
// not inert — `.git/config` is read and acted on by the next `git status`.
|
|
332
|
+
// The server's context items route refuses the same declaration on create;
|
|
333
|
+
// this is the write-side half, for rows declared before that refusal existed
|
|
334
|
+
// and for any client of the route that is not this CLI.
|
|
335
|
+
if (isGitInternalPath(path)) {
|
|
336
|
+
return {
|
|
337
|
+
ok: false,
|
|
338
|
+
reason: `${label} path is inside the repository's .git directory, which git never delivers: ${path}`,
|
|
339
|
+
};
|
|
340
|
+
}
|
|
329
341
|
if (reserved === 'refuse-reserved' && isReservedMossbearPath(path)) {
|
|
330
342
|
return {
|
|
331
343
|
ok: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide-projection.js","sourceRoot":"","sources":["../../src/docs/guide-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"guide-projection.js","sourceRoot":"","sources":["../../src/docs/guide-projection.ts"],"names":[],"mappings":"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"}
|
package/dist/repo-id.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-id.d.ts","sourceRoot":"","sources":["../src/repo-id.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"repo-id.d.ts","sourceRoot":"","sources":["../src/repo-id.ts"],"names":[],"mappings":"AAwCA,wBAAgB,aAAa,CAAC,IAAI,GAAE,MAAoB,GAAG,MAAM,CAEhE;AAoID,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAO,GAC7C,MAAM,GAAG,IAAI,CAIf;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAO,GAC7C,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wGAAwG;AACxG,wBAAsB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAElE"}
|
package/dist/repo-id.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { createHmac, randomBytes } from 'node:crypto';
|
|
8
8
|
import { readFileSync } from 'node:fs';
|
|
9
|
-
import {
|
|
9
|
+
import { readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
10
10
|
import { homedir as osHomedir } from 'node:os';
|
|
11
11
|
import { dirname, join, resolve } from 'node:path';
|
|
12
12
|
import { ensureMossbearDir } from './config.js';
|
|
@@ -16,6 +16,22 @@ const REPO_ID_KEY_FILE = 'repo-id-key';
|
|
|
16
16
|
const REPO_ID_KEY_BYTES = 32;
|
|
17
17
|
const REPO_ID_KEY_MODE = 0o600;
|
|
18
18
|
const REPO_ID_KEY_PATTERN = /^[0-9a-f]{64}$/;
|
|
19
|
+
// How long a run that lost the creation race waits for the winner's bytes.
|
|
20
|
+
// `wx` creates the file before it writes, so a loser can read zero bytes from a
|
|
21
|
+
// file that provably exists; that is a write not yet visible, not absence.
|
|
22
|
+
// Generous enough for a 65-byte write on a loaded machine, short enough that a
|
|
23
|
+
// key file which is genuinely corrupt is repaired without a visible stall.
|
|
24
|
+
const REPO_ID_KEY_ADOPT_ATTEMPTS = 20;
|
|
25
|
+
const REPO_ID_KEY_ADOPT_DELAY_MS = 10;
|
|
26
|
+
function errorCode(error) {
|
|
27
|
+
if (typeof error !== 'object' || error === null || !('code' in error))
|
|
28
|
+
return undefined;
|
|
29
|
+
const { code } = error;
|
|
30
|
+
return typeof code === 'string' ? code : undefined;
|
|
31
|
+
}
|
|
32
|
+
function sleep(ms) {
|
|
33
|
+
return new Promise((done) => setTimeout(done, ms));
|
|
34
|
+
}
|
|
19
35
|
export function repoIdKeyPath(home = osHomedir()) {
|
|
20
36
|
return join(home, '.mossbear', REPO_ID_KEY_FILE);
|
|
21
37
|
}
|
|
@@ -37,6 +53,77 @@ async function readRepoIdKey(keyPath) {
|
|
|
37
53
|
return null;
|
|
38
54
|
}
|
|
39
55
|
}
|
|
56
|
+
/** Re-read a key file that is known to exist, until it holds a whole key. */
|
|
57
|
+
async function adoptRepoIdKey(keyPath) {
|
|
58
|
+
for (let attempt = 0; attempt < REPO_ID_KEY_ADOPT_ATTEMPTS; attempt++) {
|
|
59
|
+
if (attempt > 0)
|
|
60
|
+
await sleep(REPO_ID_KEY_ADOPT_DELAY_MS);
|
|
61
|
+
const key = await readRepoIdKey(keyPath);
|
|
62
|
+
if (key)
|
|
63
|
+
return key;
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Repair a key file that never became a valid key — corrupt, or truncated by an
|
|
69
|
+
* interrupted write.
|
|
70
|
+
*
|
|
71
|
+
* The repair is claimed with `wx` on a sibling file, so exactly one run repairs
|
|
72
|
+
* it and every other run waits for that key instead of writing its own: two
|
|
73
|
+
* runs repairing independently is the same "one checkout, two ids" divergence
|
|
74
|
+
* this path exists to end. The claim file doubles as the temp file, and it
|
|
75
|
+
* lives in the key's own directory, so `rename` over the key is atomic — a run
|
|
76
|
+
* reading the key concurrently sees either the old bytes or the whole new key,
|
|
77
|
+
* never a half-written one. A write in place would hand that reader a
|
|
78
|
+
* truncated file, which is what put a loser here in the first place.
|
|
79
|
+
*/
|
|
80
|
+
async function repairRepoIdKey(keyPath, generated) {
|
|
81
|
+
const claimPath = `${keyPath}.repair`;
|
|
82
|
+
// Two passes at most: claim it, or wait out whoever holds it and take over
|
|
83
|
+
// once if their key never appeared.
|
|
84
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
85
|
+
try {
|
|
86
|
+
await writeFile(claimPath, `${generated}\n`, { mode: REPO_ID_KEY_MODE, flag: 'wx' });
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
if (errorCode(error) !== 'EEXIST')
|
|
90
|
+
return generated;
|
|
91
|
+
const adopted = await adoptRepoIdKey(keyPath);
|
|
92
|
+
if (adopted)
|
|
93
|
+
return adopted;
|
|
94
|
+
// The claim outlived the run that took it — killed mid-repair. Clear it
|
|
95
|
+
// and take over, so a crash cannot wedge the key file for good.
|
|
96
|
+
await rm(claimPath, { force: true }).catch(() => { });
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
// Claiming can succeed because the run that held the claim has just renamed
|
|
100
|
+
// it onto the key: the rename makes the claim vanish and the key become
|
|
101
|
+
// valid in the same instant, so a claim taken right after it says nothing
|
|
102
|
+
// about the key. Look once more before overwriting a key that is now good.
|
|
103
|
+
const repaired = await readRepoIdKey(keyPath);
|
|
104
|
+
if (repaired) {
|
|
105
|
+
await rm(claimPath, { force: true }).catch(() => { });
|
|
106
|
+
return repaired;
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
await rename(claimPath, keyPath);
|
|
110
|
+
return generated;
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
if (errorCode(error) === 'ENOENT') {
|
|
114
|
+
// The claim is not ours any more: a run that waited us out cleared it
|
|
115
|
+
// and is repairing now. Removing `claimPath` here would delete *their*
|
|
116
|
+
// claim and leave us both writing our own key over a file neither of
|
|
117
|
+
// us repaired — so wait for their key instead, the same way the branch
|
|
118
|
+
// above waits, and never remove a claim we may not hold.
|
|
119
|
+
return (await adoptRepoIdKey(keyPath)) ?? generated;
|
|
120
|
+
}
|
|
121
|
+
await rm(claimPath, { force: true }).catch(() => { });
|
|
122
|
+
return (await adoptRepoIdKey(keyPath)) ?? generated;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return (await adoptRepoIdKey(keyPath)) ?? generated;
|
|
126
|
+
}
|
|
40
127
|
async function loadRepoIdKey(home) {
|
|
41
128
|
const keyPath = repoIdKeyPath(home);
|
|
42
129
|
const existing = await readRepoIdKey(keyPath);
|
|
@@ -45,23 +132,29 @@ async function loadRepoIdKey(home) {
|
|
|
45
132
|
const generated = randomBytes(REPO_ID_KEY_BYTES).toString('hex');
|
|
46
133
|
try {
|
|
47
134
|
await ensureMossbearDir(dirname(keyPath));
|
|
48
|
-
await writeFile(keyPath, `${generated}\n`, { mode: REPO_ID_KEY_MODE, flag: 'wx' });
|
|
49
|
-
return generated;
|
|
50
135
|
}
|
|
51
136
|
catch {
|
|
52
|
-
//
|
|
137
|
+
// `~/.mossbear` is unusable (occupied by a file, unwritable, read-only
|
|
138
|
+
// home). Nothing can be stored, so the key degrades to per-call: the id
|
|
139
|
+
// stays present and stops being stable, which is the documented trade.
|
|
140
|
+
return generated;
|
|
53
141
|
}
|
|
54
|
-
const raced = await readRepoIdKey(keyPath);
|
|
55
|
-
if (raced)
|
|
56
|
-
return raced;
|
|
57
142
|
try {
|
|
58
|
-
await writeFile(keyPath, `${generated}\n`, { mode: REPO_ID_KEY_MODE });
|
|
59
|
-
await chmod(keyPath, REPO_ID_KEY_MODE).catch(() => { });
|
|
143
|
+
await writeFile(keyPath, `${generated}\n`, { mode: REPO_ID_KEY_MODE, flag: 'wx' });
|
|
60
144
|
return generated;
|
|
61
145
|
}
|
|
62
|
-
catch {
|
|
63
|
-
|
|
146
|
+
catch (error) {
|
|
147
|
+
// Only EEXIST means another run won the key; every other error is the same
|
|
148
|
+
// unusable-directory degradation as above. Both used to look identical
|
|
149
|
+
// here, and a loser fell through to a write without `wx` that clobbered a
|
|
150
|
+
// key the winner was already deriving ids from — one checkout, two ids.
|
|
151
|
+
if (errorCode(error) !== 'EEXIST')
|
|
152
|
+
return generated;
|
|
64
153
|
}
|
|
154
|
+
const adopted = await adoptRepoIdKey(keyPath);
|
|
155
|
+
if (adopted)
|
|
156
|
+
return adopted;
|
|
157
|
+
return await repairRepoIdKey(keyPath, generated);
|
|
65
158
|
}
|
|
66
159
|
function deriveRepoId(keyHex, root) {
|
|
67
160
|
const digest = createHmac('sha256', Buffer.from(keyHex, 'hex'))
|
package/dist/repo-id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-id.js","sourceRoot":"","sources":["../src/repo-id.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"repo-id.js","sourceRoot":"","sources":["../src/repo-id.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mossbear",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.45",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "One set of rules for every coding agent and every repo — graded against what your Claude Code runs actually did, with changes drafted for you to approve.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
57
|
-
"@mossbear/eval-core": "0.1.0-alpha.
|
|
58
|
-
"@mossbear/projections": "0.1.0-alpha.
|
|
59
|
-
"@mossbear/protocol": "0.1.0-alpha.
|
|
57
|
+
"@mossbear/eval-core": "0.1.0-alpha.45",
|
|
58
|
+
"@mossbear/projections": "0.1.0-alpha.45",
|
|
59
|
+
"@mossbear/protocol": "0.1.0-alpha.45",
|
|
60
60
|
"citty": "^0.1.6",
|
|
61
61
|
"smol-toml": "^1.8.0",
|
|
62
62
|
"valibot": "^1.4.2"
|