omnius 1.0.503 → 1.0.505

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/dist/index.js CHANGED
@@ -582310,6 +582310,12 @@ var init_agenticRunner = __esm({
582310
582310
  _verifyFailures = /* @__PURE__ */ new Set();
582311
582311
  _verifyCommandFailures = /* @__PURE__ */ new Set();
582312
582312
  _artifactInspectionFailures = /* @__PURE__ */ new Set();
582313
+ // REG-62: baseline of verification failures captured at task start.
582314
+ // Pre-existing failures (from a prior reused-run instance, or from a
582315
+ // build that was already broken before this task) are excluded from the
582316
+ // task_complete gate so they don't produce false-positive holds. Only
582317
+ // failures NEW relative to this baseline block completion.
582318
+ _verifyFailuresBaseline = /* @__PURE__ */ new Set();
582313
582319
  // REG-37e: track whether we've already nudged the agent about the
582314
582320
  // verifyCommand / declaredArtifacts fields. Empirical observation
582315
582321
  // from run #15: across 30 todo_writes, agent set neither field
@@ -589404,6 +589410,7 @@ Respond with your assessment, then take action.`;
589404
589410
  this._lastWorldStateTurn = -1;
589405
589411
  this._fileWritesSinceLastWorldState = 0;
589406
589412
  this._resetVisualEvidenceState();
589413
+ this._verifyFailuresBaseline = new Set(this._verifyFailures);
589407
589414
  if (typeof this.backend.setAbortSignal === "function") {
589408
589415
  this.backend.setAbortSignal(this._abortController.signal);
589409
589416
  }
@@ -590187,19 +590194,20 @@ TASK: ${scrubbedTask}` : scrubbedTask;
590187
590194
  return true;
590188
590195
  };
590189
590196
  const holdUnresolvedVerificationTaskComplete = (turn) => {
590190
- if (this._verifyFailures.size === 0)
590197
+ const newFailures = [...this._verifyFailures].filter((f2) => !this._verifyFailuresBaseline.has(f2));
590198
+ if (newFailures.length === 0)
590191
590199
  return false;
590192
- const failures = [...this._verifyFailures].slice(0, 8);
590200
+ const failures = newFailures.slice(0, 8);
590193
590201
  const feedback = [
590194
590202
  `[COMPLETION BLOCKED — unresolved todo verification]`,
590195
- `The active todo list still contains completed items whose required evidence has not been satisfied.`,
590203
+ `The active todo list still contains completed items whose required evidence has not been satisfied by work done in THIS task.`,
590196
590204
  ``,
590197
- `Unresolved verification item(s):`,
590205
+ `Unresolved verification item(s) introduced this run:`,
590198
590206
  ...failures.map((item) => ` - ${item}`),
590199
590207
  ``,
590200
- `Run the missing verifyCommand exactly, repair the todo evidence, or mark the todo blocked. Do not call task_complete until the verification state is clean.`
590208
+ `Run the missing verifyCommand exactly, repair the todo evidence, or mark the todo blocked. Do not call task_complete until the verification state is clean. (Pre-existing failures present at task start are ignored.)`
590201
590209
  ].join("\n");
590202
- lastCompletionGateReason = `${this._verifyFailures.size} unresolved todo verification failure(s)`;
590210
+ lastCompletionGateReason = `${newFailures.length} unresolved todo verification failure(s) introduced this run`;
590203
590211
  lastCompletionGateFeedback = feedback;
590204
590212
  lastCompletionGateCode = "todo_verification";
590205
590213
  messages2.push({ role: "system", content: feedback });
@@ -639054,9 +639062,9 @@ var init_status_bar = __esm({
639054
639062
  * still used for internal compaction/threshold logic; this is display-only.
639055
639063
  * Falls back to the raw window when unknown.
639056
639064
  */
639057
- reportedContextTotal(rawTotal) {
639058
- if (rawTotal <= 0) return 0;
639059
- return rawTotal;
639065
+ reportedContextTotal(rawTotal, cappedFallback = 0) {
639066
+ if (rawTotal > 0) return rawTotal;
639067
+ return cappedFallback > 0 ? cappedFallback : 0;
639060
639068
  }
639061
639069
  setModelName(name10) {
639062
639070
  this.setHeaderIdentity(
@@ -641386,7 +641394,7 @@ ${CONTENT_BG_SEQ}`);
641386
641394
  });
641387
641395
  {
641388
641396
  const ctxUsed = m2.estimatedContextTokens;
641389
- const ctxTotal = this.reportedContextTotal(m2.contextWindowSize);
641397
+ const ctxTotal = this.reportedContextTotal(m2.contextWindowSize, this.effectiveContextTotal(m2.contextWindowSize));
641390
641398
  let ctxSuffix = "";
641391
641399
  let ctxSuffixW = 0;
641392
641400
  let ctxCompSuffix = "";
@@ -641755,7 +641763,7 @@ ${CONTENT_BG_SEQ}`);
641755
641763
  /** Push current context window usage to the braille spinner */
641756
641764
  pushSpinnerContextMetrics() {
641757
641765
  const ctxUsed = this.metrics.estimatedContextTokens;
641758
- const ctxTotal = this.reportedContextTotal(this.metrics.contextWindowSize);
641766
+ const ctxTotal = this.reportedContextTotal(this.metrics.contextWindowSize, this.effectiveContextTotal(this.metrics.contextWindowSize));
641759
641767
  const contextPct = ctxTotal > 0 ? Math.round(ctxUsed / ctxTotal * 100) : 0;
641760
641768
  this._brailleSpinner.setMetrics({ contextPct });
641761
641769
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.503",
3
+ "version": "1.0.505",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.503",
9
+ "version": "1.0.505",
10
10
  "bundleDependencies": [
11
11
  "image-to-ascii"
12
12
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.503",
3
+ "version": "1.0.505",
4
4
  "description": "AI coding agent powered by open-source models (Ollama/vLLM) — interactive TUI with agentic tool-calling loop",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",