@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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@link-assistant/hive-mind",
3
- "version": "2.5.0",
3
+ "version": "2.5.2",
4
4
  "description": "AI-powered issue solver and hive mind for collaborative problem solving",
5
5
  "main": "src/hive.mjs",
6
6
  "type": "module",
@@ -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,
@@ -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 #1981: disk now defaults to the normal wait/enqueue path at 80% used.
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 #1981: wait instead of immediately rejecting when disk crosses 80%.
252
- disk: getThresholdConfig('disk', 'HIVE_MIND_DISK_THRESHOLD', 'HIVE_MIND_DISK_STRATEGY', 0.8, 'enqueue'),
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.8, 'enqueue').value,
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: preserve session before ending work.
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.