@hominis/fireforge 0.18.0 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -2
- package/README.md +20 -13
- package/dist/src/commands/doctor.js +13 -1
- package/dist/src/commands/export-all.js +63 -1
- package/dist/src/commands/furnace/create-xpcshell.js +4 -2
- package/dist/src/commands/furnace/preview.js +38 -0
- package/dist/src/commands/furnace/remove.js +67 -1
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +35 -0
- package/dist/src/commands/furnace/rename-xpcshell.js +97 -0
- package/dist/src/commands/furnace/rename.js +9 -0
- package/dist/src/commands/rebase/index.js +19 -1
- package/dist/src/commands/status.js +44 -5
- package/dist/src/commands/test.js +27 -16
- package/dist/src/commands/verify.js +81 -6
- package/dist/src/commands/watch.js +43 -7
- package/dist/src/core/furnace-constants.d.ts +14 -0
- package/dist/src/core/furnace-constants.js +16 -0
- package/dist/src/core/furnace-validate.js +67 -1
- package/dist/src/core/git-base.d.ts +27 -2
- package/dist/src/core/git-base.js +41 -3
- package/dist/src/core/git.js +53 -14
- package/dist/src/core/mach.d.ts +14 -2
- package/dist/src/core/mach.js +12 -2
- package/dist/src/core/marionette-preflight.d.ts +16 -0
- package/dist/src/core/marionette-preflight.js +19 -0
- package/dist/src/core/patch-lint-diff-tag.d.ts +20 -0
- package/dist/src/core/patch-lint-diff-tag.js +25 -0
- package/dist/src/core/patch-lint.js +5 -4
- package/dist/src/core/patch-registration-refs.d.ts +42 -0
- package/dist/src/core/patch-registration-refs.js +117 -0
- package/dist/src/core/xpcshell-appdir.d.ts +19 -5
- package/dist/src/core/xpcshell-appdir.js +46 -20
- package/dist/src/errors/git.d.ts +20 -0
- package/dist/src/errors/git.js +39 -0
- package/package.json +1 -1
package/dist/src/errors/git.js
CHANGED
|
@@ -96,4 +96,43 @@ export class GitIndexLockError extends GitError {
|
|
|
96
96
|
' 3. Re-run "fireforge download --force"');
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Error thrown when `git add` (monolithic or chunked) exceeds the
|
|
101
|
+
* configured timeout while indexing the Firefox source tree.
|
|
102
|
+
*
|
|
103
|
+
* 2026-04-24 eval Finding 10: a 140.10.0esr bump on a previously-working
|
|
104
|
+
* 140.9.0esr workspace aborted after ~854s with a generic
|
|
105
|
+
* `AbortError: The operation was aborted`. The root cause was the
|
|
106
|
+
* `git add` timeout firing, but the surfaced error was indistinguishable
|
|
107
|
+
* from any other AbortError and gave the operator no actionable
|
|
108
|
+
* direction. This typed error carries the elapsed budget and the
|
|
109
|
+
* environment-variable override so the recovery path is
|
|
110
|
+
* self-documenting.
|
|
111
|
+
*/
|
|
112
|
+
export class GitIndexingTimeoutError extends GitError {
|
|
113
|
+
phase;
|
|
114
|
+
timeoutMs;
|
|
115
|
+
envVar;
|
|
116
|
+
constructor(phase, timeoutMs, envVar, cause) {
|
|
117
|
+
super(`Git ${phase} indexing exceeded the ${Math.round(timeoutMs / 1000)}s timeout`, 'add -A', cause);
|
|
118
|
+
this.phase = phase;
|
|
119
|
+
this.timeoutMs = timeoutMs;
|
|
120
|
+
this.envVar = envVar;
|
|
121
|
+
}
|
|
122
|
+
get userMessage() {
|
|
123
|
+
const minutes = Math.max(1, Math.round(this.timeoutMs / 60_000));
|
|
124
|
+
const phaseDescription = this.phase === 'monolithic'
|
|
125
|
+
? 'the monolithic `git add -A` pass'
|
|
126
|
+
: 'one of the chunked `git add -- <dir>` passes';
|
|
127
|
+
return (`Git Error: ${phaseDescription} exceeded the ${minutes}-minute timeout while indexing the Firefox source tree.\n\n` +
|
|
128
|
+
'Common triggers:\n' +
|
|
129
|
+
' - Slow or loaded disk (an external volume, encrypted filesystem, or heavily-used SSD under load).\n' +
|
|
130
|
+
' - A Firefox source tree that has grown beyond what the default timeout accommodates.\n' +
|
|
131
|
+
' - A background process (antivirus, backup, indexing) holding the working directory.\n\n' +
|
|
132
|
+
'To recover:\n' +
|
|
133
|
+
` 1. Extend the timeout via the ${this.envVar} environment variable (milliseconds; e.g. "export ${this.envVar}=1800000" for 30 minutes).\n` +
|
|
134
|
+
' 2. Re-run "fireforge download --force" — the resume path resumes from the partial initialisation, so the repeat pass is not wasted work.\n' +
|
|
135
|
+
' 3. If the problem persists, check disk throughput and free space; Firefox source indexing on a cold SSD typically completes in 1–3 minutes.');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
99
138
|
//# sourceMappingURL=git.js.map
|