@link-assistant/hive-mind 2.5.0 → 2.5.2
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 +12 -0
- package/package.json +1 -1
- package/src/development-log.lib.mjs +3 -0
- package/src/queue-config.lib.mjs +4 -4
- package/src/solve.mjs +3 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @link-assistant/hive-mind
|
|
2
2
|
|
|
3
|
+
## 2.5.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- da84b0c: Lower the default disk queue-admission threshold to 65% so isolation tasks retain safer free-space headroom.
|
|
8
|
+
|
|
9
|
+
## 2.5.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 4054bcf: Commit the `--development-log` artifacts before signalling pull request readiness (issue #2048), so the development-log commit is part of the diff that CI and `--auto-restart-until-mergeable` evaluate. Previously the log commit landed after the "Ready to merge" signal and could break CI (e.g. a missing changeset) with no readiness re-evaluation.
|
|
14
|
+
|
|
3
15
|
## 2.5.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/package.json
CHANGED
|
@@ -234,6 +234,9 @@ export const collectAndCommitDevelopmentLogArtifacts = async ({ enabled, reposit
|
|
|
234
234
|
return { skipped: 'missing-repository-path' };
|
|
235
235
|
}
|
|
236
236
|
|
|
237
|
+
// Issue #2048: verbose trace so the commit timing (relative to PR readiness signals) is diagnosable from logs.
|
|
238
|
+
await log?.(`🔍 Development log finalize: issue #${issueNumber ?? '?'}, PR #${prNumber ?? 'pending'}, branch ${branchName ?? 'none'}, session ${sessionId ?? 'none'}`, { verbose: true });
|
|
239
|
+
|
|
237
240
|
try {
|
|
238
241
|
const artifacts = await writeDevelopmentLogArtifacts({
|
|
239
242
|
repositoryPath,
|
package/src/queue-config.lib.mjs
CHANGED
|
@@ -239,7 +239,7 @@ function getThresholdConfig(linoKey, envVarThreshold, envVarStrategy, defaultThr
|
|
|
239
239
|
* - 'enqueue': Block and wait in queue
|
|
240
240
|
* - 'dequeue-one-at-a-time': Allow one command, block subsequent
|
|
241
241
|
*
|
|
242
|
-
* Issue #
|
|
242
|
+
* Issue #2045: disk now defaults to the normal wait/enqueue path at 65% used.
|
|
243
243
|
* Operators can still choose immediate rejection with HIVE_MIND_DISK_STRATEGY=reject.
|
|
244
244
|
*/
|
|
245
245
|
export const QUEUE_CONFIG = {
|
|
@@ -248,8 +248,8 @@ export const QUEUE_CONFIG = {
|
|
|
248
248
|
thresholds: {
|
|
249
249
|
ram: getThresholdConfig('ram', 'HIVE_MIND_RAM_THRESHOLD', 'HIVE_MIND_RAM_STRATEGY', 0.65, 'enqueue'),
|
|
250
250
|
cpu: getThresholdConfig('cpu', 'HIVE_MIND_CPU_THRESHOLD', 'HIVE_MIND_CPU_STRATEGY', 0.65, 'enqueue'),
|
|
251
|
-
// Issue #
|
|
252
|
-
disk: getThresholdConfig('disk', 'HIVE_MIND_DISK_THRESHOLD', 'HIVE_MIND_DISK_STRATEGY', 0.
|
|
251
|
+
// Issue #2045: wait instead of immediately rejecting when disk crosses 65%.
|
|
252
|
+
disk: getThresholdConfig('disk', 'HIVE_MIND_DISK_THRESHOLD', 'HIVE_MIND_DISK_STRATEGY', 0.65, 'enqueue'),
|
|
253
253
|
claude5Hour: getThresholdConfig('claude5Hour', 'HIVE_MIND_CLAUDE_5_HOUR_SESSION_THRESHOLD', 'HIVE_MIND_CLAUDE_5_HOUR_SESSION_STRATEGY', 0.65, 'dequeue-one-at-a-time'),
|
|
254
254
|
claudeWeekly: getThresholdConfig('claudeWeekly', 'HIVE_MIND_CLAUDE_WEEKLY_THRESHOLD', 'HIVE_MIND_CLAUDE_WEEKLY_STRATEGY', 0.97, 'dequeue-one-at-a-time'),
|
|
255
255
|
codex5Hour: getThresholdConfig('codex5Hour', 'HIVE_MIND_CODEX_5_HOUR_SESSION_THRESHOLD', 'HIVE_MIND_CODEX_5_HOUR_SESSION_STRATEGY', 0.65, 'dequeue-one-at-a-time'),
|
|
@@ -265,7 +265,7 @@ export const QUEUE_CONFIG = {
|
|
|
265
265
|
// These are derived from thresholds.{metric}.value
|
|
266
266
|
RAM_THRESHOLD: getThresholdConfig('ram', 'HIVE_MIND_RAM_THRESHOLD', 'HIVE_MIND_RAM_STRATEGY', 0.65, 'enqueue').value,
|
|
267
267
|
CPU_THRESHOLD: getThresholdConfig('cpu', 'HIVE_MIND_CPU_THRESHOLD', 'HIVE_MIND_CPU_STRATEGY', 0.65, 'enqueue').value,
|
|
268
|
-
DISK_THRESHOLD: getThresholdConfig('disk', 'HIVE_MIND_DISK_THRESHOLD', 'HIVE_MIND_DISK_STRATEGY', 0.
|
|
268
|
+
DISK_THRESHOLD: getThresholdConfig('disk', 'HIVE_MIND_DISK_THRESHOLD', 'HIVE_MIND_DISK_STRATEGY', 0.65, 'enqueue').value,
|
|
269
269
|
CLAUDE_5_HOUR_SESSION_THRESHOLD: getThresholdConfig('claude5Hour', 'HIVE_MIND_CLAUDE_5_HOUR_SESSION_THRESHOLD', 'HIVE_MIND_CLAUDE_5_HOUR_SESSION_STRATEGY', 0.65, 'dequeue-one-at-a-time').value,
|
|
270
270
|
CLAUDE_WEEKLY_THRESHOLD: getThresholdConfig('claudeWeekly', 'HIVE_MIND_CLAUDE_WEEKLY_THRESHOLD', 'HIVE_MIND_CLAUDE_WEEKLY_STRATEGY', 0.97, 'dequeue-one-at-a-time').value,
|
|
271
271
|
CODEX_5_HOUR_SESSION_THRESHOLD: getThresholdConfig('codex5Hour', 'HIVE_MIND_CODEX_5_HOUR_SESSION_THRESHOLD', 'HIVE_MIND_CODEX_5_HOUR_SESSION_STRATEGY', 0.65, 'dequeue-one-at-a-time').value,
|
package/src/solve.mjs
CHANGED
|
@@ -1227,6 +1227,8 @@ try {
|
|
|
1227
1227
|
|
|
1228
1228
|
await enforceRequestedBaseBranch();
|
|
1229
1229
|
|
|
1230
|
+
// Issue #2048: commit+push dev log BEFORE any PR readiness signal so its CI gates readiness (was last, breaking CI post-signal; PR #2046, docs/case-studies/issue-2048). Idempotent: trailing call is a no-op. prettier-ignore
|
|
1231
|
+
await finalizeDevelopmentLog();
|
|
1230
1232
|
// Issue #1263 / #1728: Working session summary attachment.
|
|
1231
1233
|
// Routed through the shared maybeAttachWorkingSessionSummary helper so that
|
|
1232
1234
|
// top-level solve, auto-restart-until-mergeable, and watch-mode iterations
|
|
@@ -1466,7 +1468,7 @@ try {
|
|
|
1466
1468
|
// Issue #1516: Cleanup after all signals (was before verifyResults, caused premature commits)
|
|
1467
1469
|
await cleanupClaudeFile(tempDir, branchName, claudeCommitHash, argv);
|
|
1468
1470
|
|
|
1469
|
-
await finalizeDevelopmentLog(); // Issue #1596:
|
|
1471
|
+
await finalizeDevelopmentLog(); // Issue #1596/#2048: idempotent no-op on the success path (already committed before readiness signal); still preserves late/error work.
|
|
1470
1472
|
await endWorkSession({ isContinueMode, prNumber, argv, log, formatAligned, $, logsAttached });
|
|
1471
1473
|
} catch (error) {
|
|
1472
1474
|
await finalizeDevelopmentLog(); // Preserve failed/interrupted sessions too.
|