omp-fabric 1.13.0 → 1.13.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 CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.13.1
4
+
5
+ ### Fixed
6
+
7
+ - The status line no longer reads `healthy` beside a fault. `state` described the ledger file and the fault message described the runtime, and printing them side by side produced `lcm · healthy · … · degraded: …`. The report now carries one reconciled status, with the ledger's own word kept separately, so a renderer added later is correct without repeating the reconciliation. When the two facts differ the line says `degraded (ledger healthy)`.
8
+ - Reconciling the live session's own file while that file is being appended is counted as a raced read and retried, no longer as an error. The reader validates the file size before and after, and a session writing its own transcript trips that check by construction. A source that never settles is reported as incomplete discovery. An unreadable file, a cross-project mismatch and a dropped entry are all still counted and surfaced exactly as before.
9
+ - A reconciliation fault no longer outlives its cause. It was recorded once at session selection, and with a single call site nothing revisited it, so one momentary race pinned the message for the rest of the session. While an error is outstanding the runtime re-runs the same check at the turn boundary, at most three times per session, and only a clean pass replaces the record.
10
+ - Long lines wrap on every tool surface. 1.13.0 fixed the multicall renderer; the single-call and settled-result surfaces in `fabric-exec-tool.ts` kept clipping, one of them because wrapping was tied to whether the call happened to produce agent preview lines. That flag was tracked to the commit that introduced it and protected nothing. Wrapping is now the default in `BoundedLineList` and cannot be omitted at a call site; the row limit is the only knob. Nine call sites across two files were audited, and the four that could clip user-visible content now wrap.
11
+
3
12
  ## 1.13.0
4
13
 
5
14
  ### Fixed
@@ -4049,11 +4049,10 @@ var appendWrapDropMarker = (row, width, dropped, theme) => {
4049
4049
  return head + (theme ? theme.fg("dim", marker) : marker);
4050
4050
  };
4051
4051
  var BoundedLineList = class _BoundedLineList {
4052
- constructor(lines, theme, diffIntensity = "off", wrapLineIndexes, wrapRowLimit, inheritBackground = false) {
4052
+ constructor(lines, theme, diffIntensity = "off", wrapRowLimit, inheritBackground = false) {
4053
4053
  this.lines = lines;
4054
4054
  this.theme = theme;
4055
4055
  this.diffIntensity = diffIntensity;
4056
- this.wrapLineIndexes = wrapLineIndexes;
4057
4056
  this.wrapRowLimit = wrapRowLimit;
4058
4057
  this.inheritBackground = inheritBackground;
4059
4058
  }
@@ -4068,21 +4067,19 @@ var BoundedLineList = class _BoundedLineList {
4068
4067
  const rawLine = this.lines[lineIndex];
4069
4068
  const { kind, line } = parseMarkedDiffLine(rawLine);
4070
4069
  if (!kind) {
4071
- let renderedRows;
4072
- if (this.wrapLineIndexes?.has(lineIndex)) {
4073
- const continuationIndent = width > 2 ? " " : "";
4074
- const wrapped = wrapTextWithAnsi(
4075
- line,
4076
- Math.max(1, width - visibleWidth2(continuationIndent))
4077
- );
4078
- const limit = Math.max(1, this.wrapRowLimit ?? wrapped.length);
4079
- const kept = wrapped.slice(0, limit);
4080
- const dropped = wrapped.length - kept.length;
4081
- renderedRows = kept.map((row, index) => {
4082
- const indented = index === 0 ? row : continuationIndent + row;
4083
- return dropped > 0 && index === kept.length - 1 ? appendWrapDropMarker(indented, width, dropped, this.theme) : truncateBoundedLine(indented, width);
4084
- });
4085
- } else renderedRows = [truncateBoundedLine(line, width)];
4070
+ const continuationIndent = width > 2 ? " " : "";
4071
+ const wrapped = wrapTextWithAnsi(
4072
+ line,
4073
+ Math.max(1, width - visibleWidth2(continuationIndent))
4074
+ );
4075
+ if (wrapped.length === 0) wrapped.push("");
4076
+ const limit = Math.max(1, this.wrapRowLimit ?? wrapped.length);
4077
+ const kept = wrapped.slice(0, limit);
4078
+ const dropped = wrapped.length - kept.length;
4079
+ const renderedRows = kept.map((row, index) => {
4080
+ const indented = index === 0 ? row : continuationIndent + row;
4081
+ return dropped > 0 && index === kept.length - 1 ? appendWrapDropMarker(indented, width, dropped, this.theme) : truncateBoundedLine(indented, width);
4082
+ });
4086
4083
  rows.push(...this.inheritBackground ? renderedRows.map(inheritEnclosingBackground) : renderedRows);
4087
4084
  continue;
4088
4085
  }
@@ -4111,7 +4108,6 @@ var BoundedLineList = class _BoundedLineList {
4111
4108
  this.lines,
4112
4109
  this.theme,
4113
4110
  this.diffIntensity,
4114
- this.wrapLineIndexes,
4115
4111
  this.wrapRowLimit,
4116
4112
  true
4117
4113
  );
@@ -4134,7 +4130,8 @@ var InheritedBackgroundComponent = class {
4134
4130
  }
4135
4131
  };
4136
4132
  var inheritComponentBackground = (component) => component instanceof BoundedLineList ? component.withInheritedBackground() : new InheritedBackgroundComponent(component);
4137
- var renderBoundedLines = (lines, theme, diffIntensity = "off", wrapLineIndexes, wrapRowLimit) => new BoundedLineList(lines, theme, diffIntensity, wrapLineIndexes, wrapRowLimit);
4133
+ var renderBoundedLines = (lines, theme, diffIntensity = "off", wrapRowLimit) => new BoundedLineList(lines, theme, diffIntensity, wrapRowLimit);
4134
+ var wrapRowLimitFor = (expanded) => expanded ? void 0 : COMPACT_WRAP_ROWS;
4138
4135
  var fabricMulticallCallLimit = (expanded) => expanded ? EXPANDED_MULTICALL_LIMIT : COLLAPSED_MULTICALL_LIMIT;
4139
4136
  var visibleMulticallAudits = (audits, expanded) => {
4140
4137
  const limit = fabricMulticallCallLimit(expanded);
@@ -4275,7 +4272,7 @@ var renderFabricWriteArgumentPreview = (input, theme, invalidate) => {
4275
4272
  theme.fg("dim", `\u2026 ${body.hidden} more ${body.hidden === 1 ? "line" : "lines"}`) + (input.expanded ? "" : theme.fg("dim", " \xB7 ") + expandHint(theme))
4276
4273
  );
4277
4274
  }
4278
- return renderBoundedLines(rows2);
4275
+ return renderBoundedLines(rows2, theme, "off", wrapRowLimitFor(input.expanded));
4279
4276
  }
4280
4277
  const completed = Math.max(
4281
4278
  0,
@@ -4331,7 +4328,7 @@ var renderFabricWriteArgumentPreview = (input, theme, invalidate) => {
4331
4328
  theme.fg("dim", `\u2026 ${hidden} more ${hidden === 1 ? "write" : "writes"}`) + (input.expanded ? "" : theme.fg("dim", " \xB7 ") + expandHint(theme))
4332
4329
  );
4333
4330
  }
4334
- return renderBoundedLines(rows);
4331
+ return renderBoundedLines(rows, theme, "off", wrapRowLimitFor(input.expanded));
4335
4332
  };
4336
4333
  var shortIdOf = (value) => typeof value === "string" ? value.slice(0, 8) : void 0;
4337
4334
  var countOf = (result) => Array.isArray(result) ? String(result.length) : "";
@@ -4631,10 +4628,7 @@ var renderFabricMulticallPartial = (input, theme, invalidate) => {
4631
4628
  const progress = input.progress ? compactProgressPreview(input.progress) : "";
4632
4629
  if (progress) header += theme.fg("dim", ` \xB7 ${progress}`);
4633
4630
  const rows = [header];
4634
- const wrapLineIndexes = /* @__PURE__ */ new Set([0]);
4635
- const wrapRowLimit = input.expanded ? void 0 : COMPACT_WRAP_ROWS;
4636
4631
  if (input.phases.length > 0) {
4637
- wrapLineIndexes.add(rows.length);
4638
4632
  rows.push(theme.fg("dim", input.phases.map((phase) => `\u25C6 ${phase}`).join(" ")));
4639
4633
  }
4640
4634
  const callsShown = visibleMulticallAudits(input.audits, input.expanded);
@@ -4655,7 +4649,6 @@ var renderFabricMulticallPartial = (input, theme, invalidate) => {
4655
4649
  } else if (previewLines[0]) {
4656
4650
  callRow += ` ${previewLines[0]}`;
4657
4651
  }
4658
- wrapLineIndexes.add(rows.length);
4659
4652
  rows.push(callRow);
4660
4653
  if (audit.success !== false && input.preview?.auditIndex === auditIndex) {
4661
4654
  for (const line of input.preview.body.split("\n")) rows.push(` ${line}`);
@@ -4669,16 +4662,12 @@ var renderFabricMulticallPartial = (input, theme, invalidate) => {
4669
4662
  }
4670
4663
  }
4671
4664
  if (audit.success !== false && previewLines.length > 1) {
4672
- for (const line of previewLines.slice(1)) {
4673
- wrapLineIndexes.add(rows.length);
4674
- rows.push(line);
4675
- }
4665
+ for (const line of previewLines.slice(1)) rows.push(line);
4676
4666
  }
4677
4667
  }
4678
4668
  const callsHidden = input.audits.length - callsShown.length;
4679
4669
  if (callsHidden > 0) {
4680
4670
  const label = `\u2026 ${callsHidden} nested ${callsHidden === 1 ? "call" : "calls"} hidden`;
4681
- wrapLineIndexes.add(rows.length);
4682
4671
  rows.push(
4683
4672
  theme.fg("dim", label) + (input.expanded ? "" : theme.fg("dim", " \xB7 ") + expandHint(theme))
4684
4673
  );
@@ -4687,8 +4676,7 @@ var renderFabricMulticallPartial = (input, theme, invalidate) => {
4687
4676
  rows,
4688
4677
  theme,
4689
4678
  input.core?.settings.diffIntensity ?? "off",
4690
- wrapLineIndexes,
4691
- wrapRowLimit
4679
+ wrapRowLimitFor(input.expanded)
4692
4680
  );
4693
4681
  };
4694
4682
  var CORE_TOOL_NAMES = /* @__PURE__ */ new Set(["bash", "read", "write", "edit", "grep", "find", "ls"]);
@@ -4967,6 +4955,7 @@ export {
4967
4955
  safeTerminalText,
4968
4956
  inheritComponentBackground,
4969
4957
  renderBoundedLines,
4958
+ wrapRowLimitFor,
4970
4959
  fabricMulticallCallLimit,
4971
4960
  expandHint,
4972
4961
  restoreLegacyBashCommands,
@@ -4991,4 +4980,4 @@ export {
4991
4980
  formatJsonAsYaml,
4992
4981
  formatFabricValue
4993
4982
  };
4994
- //# sourceMappingURL=chunk-XH6SP6UI.js.map
4983
+ //# sourceMappingURL=chunk-LWD4273F.js.map