omp-fabric 1.25.16 → 1.25.18

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,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.25.18
4
+
5
+ ### Fixed
6
+
7
+ - Full output that `omp.bash` keeps for truncated results (up to the host's 16 MiB artifact cap per call) went into an `omp-fabric-bash-*` directory under the system temp directory, one per session, and nothing ever removed it. On a memory-backed `/tmp` those piled up: 624 were found on one workstation. The directories now live under `$XDG_STATE_HOME/omp-fabric/bash`, each records its owning process, and a new session removes the directory of any process that has been dead for six hours.
8
+
9
+ ## 1.25.17
10
+
11
+ ### Fixed
12
+
13
+ - 1.25.16 built the default run root from `HOME`, falling back to `.`; a process without `HOME`, as Windows usually is, put agent transcripts under a relative `./.local/state` in its working directory. The fallback is now the OS home directory.
14
+ - The Fabric chat hint in the widget read `ui.conversationShortcut` from the merged configuration, so a project `.omp/fabric.json` value showed a key that was never bound; the shortcut itself is bound once from the global configuration. The hint now shows the bound key, and the settings row says the value is global and applies after a restart.
15
+ - The settings panel offered `alt+shift+c` as a chat shortcut, which OMP already binds to copying the prompt. The presets are now `ctrl+shift+a`, `alt+shift+a`, `ctrl+alt+a` and `ctrl+alt+f`, none of which OMP binds.
16
+
3
17
  ## 1.25.16
4
18
 
5
19
  ### Fixed
@@ -10,7 +10,7 @@ import {
10
10
  lifecycleSourceIdentity,
11
11
  loadModelUsage,
12
12
  useBudgetLedger
13
- } from "./chunk-USBXMJEK.js";
13
+ } from "./chunk-YNABLCR3.js";
14
14
  import {
15
15
  normalizeModelAliases,
16
16
  resolveAvailableOmpModel
@@ -685,4 +685,4 @@ if (isMain) {
685
685
  export {
686
686
  runResidentHostFromConfigPath
687
687
  };
688
- //# sourceMappingURL=chunk-PIOZN6KS.js.map
688
+ //# sourceMappingURL=chunk-NPM24GG6.js.map
@@ -1595,9 +1595,14 @@ var judgeDelegation = async (lane, input, signal) => {
1595
1595
 
1596
1596
  // src/storage/retention.ts
1597
1597
  import fs8 from "node:fs";
1598
+ import os2 from "node:os";
1598
1599
  import path9 from "node:path";
1599
1600
  var FABRIC_RUN_ROOT_PREFIX = "omp-fabric-runs-";
1600
- var defaultRunRootParent = (env = process.env) => path9.join(env.XDG_STATE_HOME || path9.join(env.HOME || ".", ".local", "state"), "omp-fabric", "runs");
1601
+ var fabricStateRoot = (env) => path9.join(env.XDG_STATE_HOME || path9.join(env.HOME || os2.homedir(), ".local", "state"), "omp-fabric");
1602
+ var defaultRunRootParent = (env = process.env) => path9.join(fabricStateRoot(env), "runs");
1603
+ var FABRIC_BASH_ROOT_PREFIX = "omp-fabric-bash-";
1604
+ var BASH_ROOT_ORPHAN_RETENTION_MS = 6 * 60 * 60 * 1e3;
1605
+ var defaultBashRootParent = (env = process.env) => path9.join(fabricStateRoot(env), "bash");
1601
1606
  var RUN_ROOT_OWNER_FILE = ".fabric-owner.json";
1602
1607
  var TERMINAL_STATUSES = /* @__PURE__ */ new Set(["completed", "failed", "stopped", "timed_out"]);
1603
1608
  var ownerPath = (root) => path9.join(root, RUN_ROOT_OWNER_FILE);
@@ -1678,6 +1683,7 @@ var removeIfEmpty = (root) => {
1678
1683
  };
1679
1684
  var sweepTempRunRoots = (options) => {
1680
1685
  const now = options.now ?? Date.now();
1686
+ const prefix = options.prefix ?? FABRIC_RUN_ROOT_PREFIX;
1681
1687
  const result = { removedRoots: [], removedRuns: [] };
1682
1688
  let entries;
1683
1689
  try {
@@ -1686,7 +1692,7 @@ var sweepTempRunRoots = (options) => {
1686
1692
  return result;
1687
1693
  }
1688
1694
  for (const entry of entries) {
1689
- if (!entry.isDirectory() || !entry.name.startsWith(FABRIC_RUN_ROOT_PREFIX)) continue;
1695
+ if (!entry.isDirectory() || !entry.name.startsWith(prefix)) continue;
1690
1696
  const root = path9.join(options.tempRoot, entry.name);
1691
1697
  if (options.currentRoot && path9.resolve(root) === path9.resolve(options.currentRoot)) continue;
1692
1698
  const owner = readJson(ownerPath(root));
@@ -1723,6 +1729,23 @@ var sweepTempRunRoots = (options) => {
1723
1729
  }
1724
1730
  return result;
1725
1731
  };
1732
+ var createBashArtifactRoot = (env = process.env, now = Date.now()) => {
1733
+ const parent = defaultBashRootParent(env);
1734
+ fs8.mkdirSync(parent, { recursive: true, mode: 448 });
1735
+ try {
1736
+ sweepTempRunRoots({
1737
+ tempRoot: parent,
1738
+ orphanedTempRunRetentionMs: BASH_ROOT_ORPHAN_RETENTION_MS,
1739
+ oneShotRunRetentionMs: BASH_ROOT_ORPHAN_RETENTION_MS,
1740
+ now,
1741
+ prefix: FABRIC_BASH_ROOT_PREFIX
1742
+ });
1743
+ } catch {
1744
+ }
1745
+ const root = fs8.mkdtempSync(path9.join(parent, FABRIC_BASH_ROOT_PREFIX));
1746
+ markRunRootActive(root, now);
1747
+ return root;
1748
+ };
1726
1749
  var pruneActorRunArchives = (options) => {
1727
1750
  const now = options.now ?? Date.now();
1728
1751
  const removed = [];
@@ -1750,10 +1773,10 @@ var pruneActorRunArchives = (options) => {
1750
1773
  };
1751
1774
 
1752
1775
  // src/agents/session-export.ts
1753
- import os2 from "node:os";
1776
+ import os3 from "node:os";
1754
1777
  import path10 from "node:path";
1755
1778
  var SESSION_EXPORT_ENV = "OMP_FABRIC_AGENT_DIR";
1756
- var expandHome = (value) => value === "~" ? os2.homedir() : value.startsWith("~/") || value.startsWith(`~${path10.win32.sep}`) ? path10.join(os2.homedir(), value.slice(2)) : value;
1779
+ var expandHome = (value) => value === "~" ? os3.homedir() : value.startsWith("~/") || value.startsWith(`~${path10.win32.sep}`) ? path10.join(os3.homedir(), value.slice(2)) : value;
1757
1780
  var encodeSessionExportCwd = (cwd) => {
1758
1781
  const absolute = path10.isAbsolute(cwd) || path10.win32.isAbsolute(cwd) ? cwd : path10.resolve(cwd);
1759
1782
  return `--${absolute.replace(/^[/\\]/, "").replace(/[/\\:]/g, "-")}--`;
@@ -3059,7 +3082,7 @@ import fs12 from "node:fs";
3059
3082
  // src/actors/manager.ts
3060
3083
  import { randomUUID as randomUUID6 } from "node:crypto";
3061
3084
  import fs11 from "node:fs";
3062
- import os3 from "node:os";
3085
+ import os4 from "node:os";
3063
3086
  import path13 from "node:path";
3064
3087
 
3065
3088
  // src/actors/predicate.ts
@@ -3455,7 +3478,7 @@ var ActorManager = class {
3455
3478
  this.meshConfig = meshConfig;
3456
3479
  this.agents = agents;
3457
3480
  this.onDeliver = onDeliver;
3458
- this.#actorRoot = options.actorRoot ?? fs11.mkdtempSync(path13.join(os3.tmpdir(), "omp-fabric-actors-"));
3481
+ this.#actorRoot = options.actorRoot ?? fs11.mkdtempSync(path13.join(os4.tmpdir(), "omp-fabric-actors-"));
3459
3482
  this.#actorScope = options.actorScope ?? meshConfig.actorScope;
3460
3483
  this.#persistent = options.persistent ?? false;
3461
3484
  this.#mainAgent = options.mainAgent;
@@ -6787,6 +6810,7 @@ export {
6787
6810
  ensureFabricStateExclude,
6788
6811
  addCloneFirstWorktree,
6789
6812
  useBudgetLedger,
6813
+ createBashArtifactRoot,
6790
6814
  effectiveAgentTimeoutMs,
6791
6815
  validateAgentCwdRequest,
6792
6816
  resolveAgentCwd,
@@ -6801,4 +6825,4 @@ export {
6801
6825
  agentParticipantRecords,
6802
6826
  actorParticipantRecord
6803
6827
  };
6804
- //# sourceMappingURL=chunk-USBXMJEK.js.map
6828
+ //# sourceMappingURL=chunk-YNABLCR3.js.map