omp-fabric 1.12.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 +21 -0
- package/dist/chunks/{chunk-NVLD2FPK.js → chunk-LWD4273F.js} +32 -28
- package/dist/chunks/{chunk-NVLD2FPK.js.map → chunk-LWD4273F.js.map} +2 -2
- package/dist/chunks/chunk-M4DQ47WO.js +16 -0
- package/dist/chunks/chunk-M4DQ47WO.js.map +7 -0
- package/dist/commands/fabric.d.ts.map +1 -1
- package/dist/compaction/lcm-maintenance.d.ts +2 -1
- package/dist/compaction/lcm-maintenance.d.ts.map +1 -1
- package/dist/compaction/lcm-runtime.d.ts +9 -0
- package/dist/compaction/lcm-runtime.d.ts.map +1 -1
- package/dist/compaction/lcm-runtime.js +117 -46
- package/dist/compaction/lcm-runtime.js.map +3 -3
- package/dist/compaction/lcm-status.d.ts +5 -0
- package/dist/compaction/lcm-status.d.ts.map +1 -0
- package/dist/fabric-exec-tool.d.ts.map +1 -1
- package/dist/index.js +35 -34
- package/dist/index.js.map +3 -3
- package/dist/storage/lcm-migration.d.ts +1 -0
- package/dist/storage/lcm-migration.d.ts.map +1 -1
- package/dist/ui/dashboard.js +8 -3
- package/dist/ui/dashboard.js.map +2 -2
- package/dist/ui/fabric-render.d.ts +2 -1
- package/dist/ui/fabric-render.d.ts.map +1 -1
- package/dist/ui/lcm-panel.d.ts.map +1 -1
- package/dist/ui/settings.js +1 -1
- package/dist/ui/settings.js.map +1 -1
- package/docs/compaction.md +8 -2
- package/docs/configuration.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
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
|
+
|
|
12
|
+
## 1.13.0
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- LCM maintenance runs when there is work, so the summary DAG exists before a compaction needs it. 1.12.0 gated maintenance on context occupancy reaching `compaction.softThresholdRatio`, but compaction serves a precomputed frontier and itself pushes occupancy back down, so a real project could sit below the threshold indefinitely while its backlog grew. Measured on a live ledger across a turn boundary: entries rose from 10,001 to 10,005 while pending jobs stayed at 96, completed stayed at 84 and zero model calls were made. A pass is now due when the active branch carries a leaf's worth of uncovered entries, when a claimable job for that branch is waiting, or when occupancy reaches the ratio. The daily and per-session model budgets are the ceiling: an exhausted budget schedules no pass at all, which also stops an exhausted budget from burning a job's attempts until it retires.
|
|
17
|
+
- A maintenance job whose owner died is reclaimed whatever the occupancy. The sweep sat inside the gated pass, so on a project below the threshold a dead lease was stranded forever; the live ledger carried nine, expired between ten and eighteen hours earlier.
|
|
18
|
+
- Long tool rows wrap in the compact display. They were clipped at the right edge with no marker, so the end of a command or an error was simply gone. Compact rows wrap to three rows and say ` …+N` when more was dropped; expanded output is unchanged. The header, the phase row, a failed call's error text and the hidden-calls line were never wrappable in either mode and now are.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- `compaction.softThresholdRatio` is a floor that forces a maintenance pass, no longer the permission to run one. Maintenance also runs on its own backlog, so the ratio now covers the tail below one leaf before a compaction asks for it. The `0`-is-off convention, the fail-open on an unreadable occupancy reading, and the clamp range are unchanged.
|
|
23
|
+
|
|
3
24
|
## 1.12.0
|
|
4
25
|
|
|
5
26
|
### Fixed
|
|
@@ -3981,6 +3981,7 @@ var configuredDiffWrapRows = Number.parseInt(
|
|
|
3981
3981
|
10
|
|
3982
3982
|
);
|
|
3983
3983
|
var DIFF_WRAP_ROWS = Number.isFinite(configuredDiffWrapRows) && configuredDiffWrapRows > 0 ? configuredDiffWrapRows : 3;
|
|
3984
|
+
var COMPACT_WRAP_ROWS = 3;
|
|
3984
3985
|
var EXPAND_KEYBINDING = "app.tools.expand";
|
|
3985
3986
|
var COLLAPSED_MULTICALL_LIMIT = 8;
|
|
3986
3987
|
var EXPANDED_MULTICALL_LIMIT = 30;
|
|
@@ -4040,12 +4041,19 @@ var truncateBoundedLine = (line, width) => {
|
|
|
4040
4041
|
}
|
|
4041
4042
|
return truncated.endsWith(TEXT_SGR_RESET) ? truncated : truncated + TEXT_SGR_RESET;
|
|
4042
4043
|
};
|
|
4044
|
+
var appendWrapDropMarker = (row, width, dropped, theme) => {
|
|
4045
|
+
const marker = ` \u2026+${dropped}`;
|
|
4046
|
+
const markerWidth = visibleWidth2(marker);
|
|
4047
|
+
if (width <= markerWidth + 2) return truncateBoundedLine(row, width);
|
|
4048
|
+
const head = truncateBoundedLine(row, width - markerWidth);
|
|
4049
|
+
return head + (theme ? theme.fg("dim", marker) : marker);
|
|
4050
|
+
};
|
|
4043
4051
|
var BoundedLineList = class _BoundedLineList {
|
|
4044
|
-
constructor(lines, theme, diffIntensity = "off",
|
|
4052
|
+
constructor(lines, theme, diffIntensity = "off", wrapRowLimit, inheritBackground = false) {
|
|
4045
4053
|
this.lines = lines;
|
|
4046
4054
|
this.theme = theme;
|
|
4047
4055
|
this.diffIntensity = diffIntensity;
|
|
4048
|
-
this.
|
|
4056
|
+
this.wrapRowLimit = wrapRowLimit;
|
|
4049
4057
|
this.inheritBackground = inheritBackground;
|
|
4050
4058
|
}
|
|
4051
4059
|
#cachedWidth;
|
|
@@ -4059,20 +4067,19 @@ var BoundedLineList = class _BoundedLineList {
|
|
|
4059
4067
|
const rawLine = this.lines[lineIndex];
|
|
4060
4068
|
const { kind, line } = parseMarkedDiffLine(rawLine);
|
|
4061
4069
|
if (!kind) {
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
} 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
|
+
});
|
|
4076
4083
|
rows.push(...this.inheritBackground ? renderedRows.map(inheritEnclosingBackground) : renderedRows);
|
|
4077
4084
|
continue;
|
|
4078
4085
|
}
|
|
@@ -4101,7 +4108,7 @@ var BoundedLineList = class _BoundedLineList {
|
|
|
4101
4108
|
this.lines,
|
|
4102
4109
|
this.theme,
|
|
4103
4110
|
this.diffIntensity,
|
|
4104
|
-
this.
|
|
4111
|
+
this.wrapRowLimit,
|
|
4105
4112
|
true
|
|
4106
4113
|
);
|
|
4107
4114
|
}
|
|
@@ -4123,7 +4130,8 @@ var InheritedBackgroundComponent = class {
|
|
|
4123
4130
|
}
|
|
4124
4131
|
};
|
|
4125
4132
|
var inheritComponentBackground = (component) => component instanceof BoundedLineList ? component.withInheritedBackground() : new InheritedBackgroundComponent(component);
|
|
4126
|
-
var renderBoundedLines = (lines, theme, diffIntensity = "off",
|
|
4133
|
+
var renderBoundedLines = (lines, theme, diffIntensity = "off", wrapRowLimit) => new BoundedLineList(lines, theme, diffIntensity, wrapRowLimit);
|
|
4134
|
+
var wrapRowLimitFor = (expanded) => expanded ? void 0 : COMPACT_WRAP_ROWS;
|
|
4127
4135
|
var fabricMulticallCallLimit = (expanded) => expanded ? EXPANDED_MULTICALL_LIMIT : COLLAPSED_MULTICALL_LIMIT;
|
|
4128
4136
|
var visibleMulticallAudits = (audits, expanded) => {
|
|
4129
4137
|
const limit = fabricMulticallCallLimit(expanded);
|
|
@@ -4264,7 +4272,7 @@ var renderFabricWriteArgumentPreview = (input, theme, invalidate) => {
|
|
|
4264
4272
|
theme.fg("dim", `\u2026 ${body.hidden} more ${body.hidden === 1 ? "line" : "lines"}`) + (input.expanded ? "" : theme.fg("dim", " \xB7 ") + expandHint(theme))
|
|
4265
4273
|
);
|
|
4266
4274
|
}
|
|
4267
|
-
return renderBoundedLines(rows2);
|
|
4275
|
+
return renderBoundedLines(rows2, theme, "off", wrapRowLimitFor(input.expanded));
|
|
4268
4276
|
}
|
|
4269
4277
|
const completed = Math.max(
|
|
4270
4278
|
0,
|
|
@@ -4320,7 +4328,7 @@ var renderFabricWriteArgumentPreview = (input, theme, invalidate) => {
|
|
|
4320
4328
|
theme.fg("dim", `\u2026 ${hidden} more ${hidden === 1 ? "write" : "writes"}`) + (input.expanded ? "" : theme.fg("dim", " \xB7 ") + expandHint(theme))
|
|
4321
4329
|
);
|
|
4322
4330
|
}
|
|
4323
|
-
return renderBoundedLines(rows);
|
|
4331
|
+
return renderBoundedLines(rows, theme, "off", wrapRowLimitFor(input.expanded));
|
|
4324
4332
|
};
|
|
4325
4333
|
var shortIdOf = (value) => typeof value === "string" ? value.slice(0, 8) : void 0;
|
|
4326
4334
|
var countOf = (result) => Array.isArray(result) ? String(result.length) : "";
|
|
@@ -4620,7 +4628,6 @@ var renderFabricMulticallPartial = (input, theme, invalidate) => {
|
|
|
4620
4628
|
const progress = input.progress ? compactProgressPreview(input.progress) : "";
|
|
4621
4629
|
if (progress) header += theme.fg("dim", ` \xB7 ${progress}`);
|
|
4622
4630
|
const rows = [header];
|
|
4623
|
-
const wrapLineIndexes = input.expanded ? /* @__PURE__ */ new Set() : void 0;
|
|
4624
4631
|
if (input.phases.length > 0) {
|
|
4625
4632
|
rows.push(theme.fg("dim", input.phases.map((phase) => `\u25C6 ${phase}`).join(" ")));
|
|
4626
4633
|
}
|
|
@@ -4642,7 +4649,6 @@ var renderFabricMulticallPartial = (input, theme, invalidate) => {
|
|
|
4642
4649
|
} else if (previewLines[0]) {
|
|
4643
4650
|
callRow += ` ${previewLines[0]}`;
|
|
4644
4651
|
}
|
|
4645
|
-
if (previewLines.length > 0) wrapLineIndexes?.add(rows.length);
|
|
4646
4652
|
rows.push(callRow);
|
|
4647
4653
|
if (audit.success !== false && input.preview?.auditIndex === auditIndex) {
|
|
4648
4654
|
for (const line of input.preview.body.split("\n")) rows.push(` ${line}`);
|
|
@@ -4656,10 +4662,7 @@ var renderFabricMulticallPartial = (input, theme, invalidate) => {
|
|
|
4656
4662
|
}
|
|
4657
4663
|
}
|
|
4658
4664
|
if (audit.success !== false && previewLines.length > 1) {
|
|
4659
|
-
for (const line of previewLines.slice(1))
|
|
4660
|
-
wrapLineIndexes?.add(rows.length);
|
|
4661
|
-
rows.push(line);
|
|
4662
|
-
}
|
|
4665
|
+
for (const line of previewLines.slice(1)) rows.push(line);
|
|
4663
4666
|
}
|
|
4664
4667
|
}
|
|
4665
4668
|
const callsHidden = input.audits.length - callsShown.length;
|
|
@@ -4673,7 +4676,7 @@ var renderFabricMulticallPartial = (input, theme, invalidate) => {
|
|
|
4673
4676
|
rows,
|
|
4674
4677
|
theme,
|
|
4675
4678
|
input.core?.settings.diffIntensity ?? "off",
|
|
4676
|
-
|
|
4679
|
+
wrapRowLimitFor(input.expanded)
|
|
4677
4680
|
);
|
|
4678
4681
|
};
|
|
4679
4682
|
var CORE_TOOL_NAMES = /* @__PURE__ */ new Set(["bash", "read", "write", "edit", "grep", "find", "ls"]);
|
|
@@ -4952,6 +4955,7 @@ export {
|
|
|
4952
4955
|
safeTerminalText,
|
|
4953
4956
|
inheritComponentBackground,
|
|
4954
4957
|
renderBoundedLines,
|
|
4958
|
+
wrapRowLimitFor,
|
|
4955
4959
|
fabricMulticallCallLimit,
|
|
4956
4960
|
expandHint,
|
|
4957
4961
|
restoreLegacyBashCommands,
|
|
@@ -4976,4 +4980,4 @@ export {
|
|
|
4976
4980
|
formatJsonAsYaml,
|
|
4977
4981
|
formatFabricValue
|
|
4978
4982
|
};
|
|
4979
|
-
//# sourceMappingURL=chunk-
|
|
4983
|
+
//# sourceMappingURL=chunk-LWD4273F.js.map
|