@legioncodeinc/honeycomb 0.1.11 → 0.1.13

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.
@@ -5,13 +5,13 @@
5
5
  },
6
6
  "metadata": {
7
7
  "description": "Honeycomb — persistent memory daemon and thin harness clients for AI coding assistants",
8
- "version": "0.1.11"
8
+ "version": "0.1.13"
9
9
  },
10
10
  "plugins": [
11
11
  {
12
12
  "name": "honeycomb",
13
13
  "description": "Honeycomb Claude Code plugin — captures session activity and provides cross-session memory through the local daemon",
14
- "version": "0.1.11",
14
+ "version": "0.1.13",
15
15
  "source": "./harnesses/claude-code"
16
16
  }
17
17
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "honeycomb",
3
3
  "description": "Honeycomb — a long-lived daemon plus thin clients for six coding harnesses, the unified honeycomb CLI, the MCP server, and the embed daemon",
4
- "version": "0.1.11",
4
+ "version": "0.1.13",
5
5
  "author": {
6
6
  "name": "Honeycomb"
7
7
  },
package/bundle/cli.js CHANGED
@@ -17262,7 +17262,7 @@ function buildAllowedProperties(input) {
17262
17262
  }
17263
17263
  var systemTelemetryClock = () => (/* @__PURE__ */ new Date()).toISOString();
17264
17264
  var DEFAULT_EMIT_TIMEOUT_MS = 2e3;
17265
- var HONEYCOMB_VERSION = true ? "0.1.11" : "0.0.0-dev";
17265
+ var HONEYCOMB_VERSION = true ? "0.1.13" : "0.0.0-dev";
17266
17266
  async function emitTelemetry(event, opts, deps = {}) {
17267
17267
  const env = deps.env ?? process.env;
17268
17268
  const key = deps.posthogKey ?? POSTHOG_KEY;
@@ -17405,7 +17405,7 @@ function renderGlassBoxText(view) {
17405
17405
  // dist/src/shared/constants.js
17406
17406
  var DAEMON_PORT = 3850;
17407
17407
  var DAEMON_HOST = "127.0.0.1";
17408
- var HONEYCOMB_VERSION2 = true ? "0.1.11" : "0.0.0-dev";
17408
+ var HONEYCOMB_VERSION2 = true ? "0.1.13" : "0.0.0-dev";
17409
17409
  var PRODUCT_SLUG = "honeycomb";
17410
17410
 
17411
17411
  // dist/src/commands/install.js
@@ -20356,7 +20356,7 @@ function launchdController(runner) {
20356
20356
  return { ok: true, manager: "launchd" };
20357
20357
  },
20358
20358
  stop(_spec) {
20359
- runner.run("launchctl", ["kill", "SIGTERM", `${domain2()}/${SERVICE_LABEL}`]);
20359
+ runner.run("launchctl", ["bootout", `${domain2()}/${SERVICE_LABEL}`]);
20360
20360
  return { ok: true, manager: "launchd" };
20361
20361
  },
20362
20362
  isRegistered(spec) {
package/daemon/index.js CHANGED
@@ -7373,7 +7373,7 @@ import { pathToFileURL } from "node:url";
7373
7373
  // dist/src/shared/constants.js
7374
7374
  var DAEMON_PORT = 3850;
7375
7375
  var DAEMON_HOST = "127.0.0.1";
7376
- var HONEYCOMB_VERSION = true ? "0.1.11" : "0.0.0-dev";
7376
+ var HONEYCOMB_VERSION = true ? "0.1.13" : "0.0.0-dev";
7377
7377
 
7378
7378
  // dist/src/daemon/runtime/assemble.js
7379
7379
  import { mkdirSync as mkdirSync21, mkdtempSync, readFileSync as readFileSync23, rmSync as rmSync10, writeFileSync as writeFileSync17 } from "node:fs";
@@ -22414,7 +22414,7 @@ function buildAllowedProperties(input) {
22414
22414
  }
22415
22415
  var systemTelemetryClock = () => (/* @__PURE__ */ new Date()).toISOString();
22416
22416
  var DEFAULT_EMIT_TIMEOUT_MS = 2e3;
22417
- var HONEYCOMB_VERSION2 = true ? "0.1.11" : "0.0.0-dev";
22417
+ var HONEYCOMB_VERSION2 = true ? "0.1.13" : "0.0.0-dev";
22418
22418
  async function emitTelemetry(event, opts, deps = {}) {
22419
22419
  const env = deps.env ?? process.env;
22420
22420
  const key = deps.posthogKey ?? POSTHOG_KEY;
@@ -26261,15 +26261,27 @@ var DeepLakeJobQueueService = class {
26261
26261
  return this.storage.query(sql, this.scope);
26262
26262
  }
26263
26263
  /**
26264
- * Start the queue (b-AC-5 / FR-8): ensure `memory_jobs` exists, reap any leases
26265
- * dangling from a prior process, and start the reaper timer.
26264
+ * Start the queue (b-AC-5 / FR-8): schedule the reaper timer and warm/heal the
26265
+ * queue table in the background. No storage round trip is allowed to gate daemon
26266
+ * readiness; handlers and workers still heal on their own first write/lease path.
26266
26267
  */
26267
26268
  async start() {
26268
- await this.ensureTable();
26269
+ if (this.reaperHandle !== void 0)
26270
+ return;
26269
26271
  this.reaperHandle = this.clock.setTimer(() => {
26270
26272
  void this.reapSweep();
26271
26273
  }, this.cfg.reaperIntervalMs);
26272
- void this.reapSweep();
26274
+ void this.bootstrapInBackground();
26275
+ }
26276
+ async bootstrapInBackground() {
26277
+ try {
26278
+ await this.ensureTable();
26279
+ await this.reapSweep();
26280
+ } catch (err) {
26281
+ this.logger?.event("queue.bootstrap.failed", {
26282
+ reason: err instanceof Error ? err.message : String(err)
26283
+ });
26284
+ }
26273
26285
  }
26274
26286
  /**
26275
26287
  * One reaper sweep, guarded against overlap (FR-5). A sweep already in flight makes
@@ -54331,6 +54343,24 @@ var LOCK_FILE_NAME = "daemon.lock";
54331
54343
  var PID_FILE_NAME = "daemon.pid";
54332
54344
  var DEFAULT_HEALTH_PROBE_INTERVAL_MS = 15e3;
54333
54345
  var DEFAULT_GRAPH_BUILD_INTERVAL_MS = 60 * 60 * 1e3;
54346
+ var CODEBASE_GRAPH_AUTO_BUILD_ENV = "HONEYCOMB_CODEBASE_GRAPH_AUTO_BUILD";
54347
+ function parseBooleanEnv(raw2) {
54348
+ if (typeof raw2 !== "string")
54349
+ return void 0;
54350
+ const value = raw2.trim().toLowerCase();
54351
+ if (value === "1" || value === "true" || value === "yes" || value === "on")
54352
+ return true;
54353
+ if (value === "0" || value === "false" || value === "no" || value === "off" || value === "")
54354
+ return false;
54355
+ return void 0;
54356
+ }
54357
+ function resolveCodebaseGraphAutoBuild(options) {
54358
+ if (options.explicit !== void 0)
54359
+ return options.explicit;
54360
+ if (options.hasInjectedStorage || options.mode !== "local")
54361
+ return false;
54362
+ return parseBooleanEnv((options.env ?? process.env)[CODEBASE_GRAPH_AUTO_BUILD_ENV]) === true;
54363
+ }
54334
54364
  var defaultSeamFns = {
54335
54365
  attachHooks: attachHooksHandlers,
54336
54366
  mountDashboard: mountDashboardApi,
@@ -55027,7 +55057,11 @@ function assembleDaemon(options = {}) {
55027
55057
  healthBit = "degraded";
55028
55058
  }
55029
55059
  }
55030
- const autoBuildGraph = options.autoBuildGraph ?? (options.storage === void 0 && config2.mode === "local");
55060
+ const autoBuildGraph = resolveCodebaseGraphAutoBuild({
55061
+ explicit: options.autoBuildGraph,
55062
+ hasInjectedStorage: options.storage !== void 0,
55063
+ mode: config2.mode
55064
+ });
55031
55065
  let graphBuildTimer = null;
55032
55066
  let graphBuildInFlight = false;
55033
55067
  async function rebuildCodebaseGraph() {
@@ -55055,6 +55089,7 @@ function assembleDaemon(options = {}) {
55055
55089
  let pipelineWorker = null;
55056
55090
  let leaseCoordinator = null;
55057
55091
  let skillifyWorker = null;
55092
+ const awaitInitialHealthProbe = options.awaitInitialHealthProbe ?? options.storage !== void 0;
55058
55093
  const startBackgroundWorkers = options.startBackgroundWorkers ?? true;
55059
55094
  const startSummaryWorker = options.startSummaryWorker ?? true;
55060
55095
  const startPipelineWorker = options.startPipelineWorker ?? true;
@@ -55071,7 +55106,11 @@ function assembleDaemon(options = {}) {
55071
55106
  locked = true;
55072
55107
  started = true;
55073
55108
  if (storageHealthProbeEnabled) {
55074
- await refreshHealth();
55109
+ const initialHealthProbe = refreshHealth();
55110
+ if (awaitInitialHealthProbe)
55111
+ await initialHealthProbe;
55112
+ else
55113
+ void initialHealthProbe;
55075
55114
  probeTimer = setInterval(() => {
55076
55115
  void refreshHealth();
55077
55116
  }, probeIntervalMs);
@@ -2,7 +2,7 @@
2
2
  import { createServer } from "node:http";
3
3
 
4
4
  // dist/src/shared/constants.js
5
- var HONEYCOMB_VERSION = true ? "0.1.11" : "0.0.0-dev";
5
+ var HONEYCOMB_VERSION = true ? "0.1.13" : "0.0.0-dev";
6
6
 
7
7
  // dist/embeddings/src/index.js
8
8
  var EMBED_DIMS = 768;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "honeycomb",
3
3
  "description": "Honeycomb — persistent memory for Claude Code sessions via the local Honeycomb daemon",
4
- "version": "0.1.11",
4
+ "version": "0.1.13",
5
5
  "author": {
6
6
  "name": "Honeycomb"
7
7
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "honeycomb-codex",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "description": "Honeycomb — persistent shared memory for OpenAI Codex CLI via the local Honeycomb daemon",
5
5
  "type": "module",
6
6
  "license": "MIT"
@@ -3,7 +3,7 @@ globalThis.__honeycomb_tuning__ ??= {};
3
3
  // src/shared/constants.ts
4
4
  var DAEMON_PORT = 3850;
5
5
  var DAEMON_HOST = "127.0.0.1";
6
- var HONEYCOMB_VERSION = true ? "0.1.11" : "0.0.0-dev";
6
+ var HONEYCOMB_VERSION = true ? "0.1.13" : "0.0.0-dev";
7
7
 
8
8
  // src/daemon-client/index.ts
9
9
  function createDaemonClient(endpoint) {
@@ -43,5 +43,5 @@
43
43
  }
44
44
  }
45
45
  },
46
- "version": "0.1.11"
46
+ "version": "0.1.13"
47
47
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "honeycomb-openclaw",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "description": "Honeycomb — persistent shared memory for AI agents, OpenClaw harness",
6
6
  "license": "MIT",
@@ -6892,7 +6892,7 @@ var require_dist = __commonJS({
6892
6892
  // dist/src/shared/constants.js
6893
6893
  var DAEMON_PORT = 3850;
6894
6894
  var DAEMON_HOST = "127.0.0.1";
6895
- var HONEYCOMB_VERSION = true ? "0.1.11" : "0.0.0-dev";
6895
+ var HONEYCOMB_VERSION = true ? "0.1.13" : "0.0.0-dev";
6896
6896
 
6897
6897
  // dist/src/daemon-client/index.js
6898
6898
  function createDaemonClient(endpoint) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@legioncodeinc/honeycomb",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "//go-public": "Go-public switches are flipped: scoped name, public+provenance publishConfig live, `private` removed. CI auth is npm Trusted Publishing (OIDC); there is NO NPM_TOKEN. The go-live procedure is RELEASING.md 'Cut the release': the first publish is a one-time manual 2FA bootstrap that creates the package, after which every CI publish from release.yaml is tokenless OIDC.",
5
5
  "publishConfig": {
6
6
  "access": "public",