omnius 1.0.893 → 1.0.895

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.
@@ -0,0 +1,91 @@
1
+ # Completion and steering validation — 22 October 2026
2
+
3
+ This report distinguishes CPU regression tests, real-model tests with real file effects, and real-model conversations over synthetic evidence. A blocked unsafe claim is useful negative evidence; it does not by itself prove that a legitimate task can finish.
4
+
5
+ ## Hardware and scope
6
+
7
+ The live endpoint is the user's configured Ollama broker at `http://localhost:11434`, using exactly `ornith-1.5:122b` (digest `f1e64af05b7dc05153dc7f3fffc34e61fa81f672ae248b9134cc7751ac21c890`). Each model load was admitted through the broker for the ordered A100 pair, and actual runner placement plus `CUDA_VISIBLE_DEVICES` was checked before generating tokens. There is no CPU offload, alternate model, or remote fallback. The unrelated transcription lease on the third A100 was preserved.
8
+
9
+ The original `test_three` application was not resumed or modified. Actual file-effect tests use a private, neutral JSON layout/font fixture. The dialogue demonstration uses explicitly synthetic observations and receipts, and cannot establish that an external message was really sent or a test command really passed.
10
+
11
+ ## Failures found by live testing
12
+
13
+ | Run (UTC) | Result | Root cause or test limitation |
14
+ | --- | --- | --- |
15
+ | 02:27 | Failed, 2 physical model requests | Router invented input references and returned an invalid continuation scope. |
16
+ | 02:30 | Failed, 3 requests | Admission produced an invalid source-review effect combination. |
17
+ | 02:34 | Failed, 7 requests | Completion omitted its user-visible reply; the actual tool schema made that field optional. |
18
+ | 02:39 | First comparison completed; full sequence failed, 9 requests | A later router decision omitted the required user-result effect. |
19
+ | 02:44 | First comparison completed; run explicitly stopped | The harness omitted the production steering reply lane. It also exposed a real admission bug: ordinary inline reporting was classified as external delivery, and source comparisons lacked verification. The incomplete run has no final report and is not counted as a pass. |
20
+ | 02:56 | Failed safely before tools, 5 requests | Both proposal attempts omitted comparison verification. The independent critic identified comparisons but emitted an inconsistent global acceptance. Host consistency checks rejected it. Distinct HTTP requests carried the correction, but the model returned identical proposals. Grammar-branch bias was suspected, not established as a decoder defect. |
21
+ | 03:05 | Failed safely before critic admission, 3 requests | A smaller decoder schema plus more warnings still produced inconsistent kind/method/effect fields. The faster failure was not a successful performance improvement. |
22
+ | 03:15 | First comparison completed; full sequence failed, 11 requests | The simplified semantic-purpose interface worked for the first task. The next proposal exposed an expressivity defect: domain requirements could not declare an inline response even though the critic correctly requested that classification. |
23
+ | 03:20 | First comparison completed; full sequence failed, 15 requests | Wrong-file inspection, steering reply and renewed source admission succeeded, and the worker honestly declared the read-only phase incomplete. The harness then required old reads to remain admissible after steering had advanced the contract revision. They correctly did not. A fresh actual registered read is required before the negative critic test. |
24
+ | 03:26 | First comparison and fresh-read continuation passed; full sequence failed, 22 requests | The actual negative critic identified wrong font, missing footer and absent mutation. One paraphrased candidate quotation made the response structurally invalid. The direct harness call had bypassed the production runner's existing single exact-quote correction. The harness must exercise that production path, not waive quote validation. |
25
+ | 03:37 | First comparison passed; steering admission held incomplete, 17 requests | An execution row omitted its newly required justification. On retry, the model selected source comparison correctly but attached an execution justification to an inline-response row. Host validation rejected both. The producer decoder schema must require the field on execution rows and forbid it on other rows, rather than represent either invalid state. |
26
+ | 03:44 | First comparison passed; update admission held, 13 requests | The critic duplicated one requirement ID and omitted the communication carrier despite a global acceptance. The retry repeated an identical source citation. Fixed keyed review fields remove model copying of the host inventory; exact valid citation duplicates have set semantics. Unknown sources, extra properties and unsupported requirements remain rejected. |
27
+ | 03:51 | Admission, steering and fresh reads passed; full sequence failed, 24 requests | The production negative critic identified the wrong font/footer but cited tool-output text instead of the candidate. Its single correction still supplied nonliteral quotes and an empty citation for a satisfied check. Inventory and current evidence IDs were correct. A request-local host span ID replaces copied candidate prose/hashes; the active schema requires a subject citation for every check without making that citation evidence of success. |
28
+ | 04:01 | Raw harness reported pass, 42 requests; post-audit rejects a full semantic pass | The producer and critic retained the explicit verify-result sentence but jointly labeled it observation, removing typed source-review verification. Actual supported comparison, negative span-based rejection and later real-file repair succeeded; they do not erase the earlier weakening. Repeated reads had distinct requests, growing histories and compact loop feedback. A contradictory discovery instruction and cache hits from the retired contract revision prevented progress. The raw report is preserved unchanged with a separate audit. |
29
+ | 04:13 | Partial validation; failed before repair, 24 requests | The stronger admission invariant passed every revision, supported comparison completed, and the real false claim was validly rejected. During runner unload/reload, the final router request received HTTP 503 `queue_admission_timeout` with `admission_retained: true`. The helper swallowed transport pending as no decision. This is a broker-admission custody failure, not a semantic rejection; no final repair happened in this run. |
30
+ | 04:29 | Complete intermediate sequence passed, 33 physical requests | Original verification obligations survived steering; current-owned reads, valid false-claim rejection, actual font/footer repair and fresh positive review all passed. This build predates the shared admission/reviewer pending-request repair and had no retained 503, so it is not final validation of that repair. Its accepted prose also miscounted the six artifact fields as seven; the requested values and actual effects passed, not flawless prose. |
31
+ | 04:40 | Explicitly stopped superseded build after seven physical requests | The full CPU suite found that propagated reviewer errors reached legacy completion normalization, and an unavailable quote correction could be issued again. The operator stopped this harness while its first result review was in flight. Its interrupted comparison is not counted as a model or semantic failure, and supplies no completed-sequence credit. |
32
+ | 04:51 | Partial validation, 33 physical calls; explicitly stopped | First comparison passed; two natural retained HTTP 503s resumed body-free under their original logical IDs. A genuine semantic mismatch required the second steering proposal; queue waits consumed no extra proposal. The read-only worker then repeated the unchanged file despite current evidence and stasis feedback. Late context reasserted mutation instructions while its invocation limit remained only in the initial message. Stop interrupted the subsequent read-only continuation; no valid negative-review or repair credit is claimed. |
33
+
34
+ | 05:05 | Read-only handoff, negative review and both real repairs passed; final verification held incomplete, 21 physical calls | The invocation-scope fix ended the read-only phase after three primary turns. Actual font/footer changes then succeeded. The plateau guard keyed read novelty only by tool arguments and counted only criterion-status changes as progress, so it refused the fresh read of the changed file. No positive completion was accepted. One natural retained router 503 resumed body-free under the same logical ID. |
35
+
36
+ | 05:17 | Failed at the 10-turn bound, 19 physical calls and one valid critic | Authentic cross-process continuation admitted fresh reads of the repaired files. The critic credited both prior mutations and current parity, but rejected the worker’s inaccurate no-change report. The operational work graph kept projecting old read-only summaries as adopted claims without originating run, time or artifact revision. The worker repeatedly reread correct artifacts to resolve that stale conflict instead of correcting its historical report. Further repair was explicitly deferred by the user. |
37
+
38
+ The repairs bind router references to exact issued IDs, validate model-authored requirement/effect populations, pass the full original request and accepted steering into completion review, and require the exact final reply before admitting visible completion. The v4 wire vocabulary also separates inspection without verification from comparing or verifying source content; both models must choose the same purpose. The fixture explicitly rejects any admission that drops the original verification obligation. Routing, task-admission proposals and critics, and required completion review now share one owned retained-request lifecycle. A typed retained broker wait preserves the exact logical request without spending semantic correction attempts. A completion-review transport failure releases its pending challenge reservation and propagates as infrastructure failure instead of becoming an empty, invalid semantic verdict. A strict backend resume validates payload, endpoint, model, GPU/CPU scope and expiry before sending a body-free resume; Stop and stale ownership cancel the caller, while custody loss remains explicit. A failed host argument check or runtime review failure is branded as a host rejection and cannot be converted into successful completion by the legacy tool-adapter compatibility path. If an issued quote correction returns no verdict, the first actual rejected output and a separate transport-only audit are retained; no second verdict is invented and finalization cannot restart that correction allowance. Cancellation cannot emit accepted completion.
39
+
40
+ Admission allows at most two complete proposal attempts, with an independent critic for each structurally valid proposal. The host never fills missing semantic effects, invents a source-comparison requirement, or substitutes its own successful verdict. Prior model interpretations remain revisable against the retained human sources; they are not additional human instructions.
41
+
42
+ The final admission interface asks the model for a semantic purpose and communication mode. A versioned host compiler maps those declarations to requested obligations; it grants no evidence credit. Exact source aliases remove model copying of opaque native IDs and hashes, while the complete original request and accepted steering remain available to both critics. Rejected outputs stay in a private audit; only bounded diagnostics re-enter the repair packet. Independent review found and closed one remaining size leak in malformed `communication.mode`, with oversized-string and nested-object regressions.
43
+
44
+ Nine primary references were inducted with acquisition hashes, quality limits and provenance. The [synthesis](../.aiwg/research/synthesis/context-engineering-live-admission-20261022.md) separates this short-control-call classification problem from the earlier accumulation of large observations. On the same 217-character request, captured critic data fell from 9,046 to 1,756 characters and retry data from 14,675 to 1,247. These are context-string measurements, not a claim of equivalent token or runtime savings.
45
+
46
+
47
+ The 04:29 final critic also exposed a separate context-growth defect: 43,803 prompt tokens for the small fixture. The model packet repeated the same 31,895-byte evidence array in two host slots, including an 11,612-byte prior-review audit, and repeated canonical requirements and current source state. The new model projection removes exact duplicate host copies and bulky payloads only from narrowly identified review bookkeeping. Every factual evidence row, current source body and native human source remains; the full raw input, audit, parser and currentness bindings remain unchanged.
48
+
49
+ A CPU replay of the already projected 04:29 packet reduced review-evidence bytes from 77,737 to 26,415 and full UTF-8 user-packet bytes from 89,405 to 38,083. That replay restored only the host snapshot schema tag; it did not reconstruct previously omitted scheduling fields or compare the original production binding hash. Reconstructed-input immutability and source-body preservation were checked separately from the production binding regressions. These byte measurements establish no post-change token or latency result.
50
+
51
+ The read-loop repair preserves the exact same-run invocation context as quoted protected context across steering and reconstruction, alongside the original native objective. Context does not become new human or effect authority, and a new invocation clears the old scope. Phase-specific edit procedures now require exposed edit methods or actual discovery capability. Focused runner tests cover the read-only scope, unchanged mutation obligations, cached rereads, honest incomplete handoff and scope reset. The actual 05:05 read-only continuation passed in three primary turns, and the independent negative critic correctly rejected the wrong-font claim.
52
+
53
+ A second source defect was isolated after both actual repairs: argument-only novelty made a read of the changed file look unchanged, while criterion-only progress left a stale plateau counter. The repair renews a read only for a changed on-disk revision after an actual owned mutation to that path. Genuine successful file mutations reset the no-delta streak after before/after byte checks; they do not satisfy a requirement or substitute for final review. Repeated reads, no-op writes, new call IDs and refused calls do not renew that allowance.
54
+
55
+ ## Real terminal findings
56
+
57
+ Actual Node → Bun native-terminal tests exposed two input losses before inference: a submission arriving before startup handlers were installed, and input captured by a visually closing modal after the host had returned input custody. Startup now buffers accepted submissions until handlers are ready. Closing decorations relinquish interactive custody immediately while cleanup remains bounded and owned by the retiring modal instance.
58
+
59
+ After accepted steering, cached reads are now eligible only under their original run, epoch, objective revision and requirement-set digest. A changed owner forces real tool execution and a new receipt; the same-revision path retains its deduplication. An actual same-run CPU regression failed before the patch and passed after it. Capability guidance also stops advertising discovery when `tool_search` is unavailable, and explicitly identifies its bounded name list as a preview of complete exposed tool definitions.
60
+
61
+ A real PTY reproduction accepted input one millisecond after modal close while the decoration was still retiring. CPU lifecycle tests also cover cleanup and same-ID modal replacement. This is separate from an inference-through-the-TUI pass.
62
+
63
+ The real native TUI inference run ending at 03:33:38 UTC passed all eight checks in 103.4 seconds using 15 actual inference requests. It exercised the compiled CLI entry point, native model picker without inference, streamed chat, a registered file read returned to the model and painted in the terminal, editable input plus scrolling/resize during streaming, actual transport cancellation, and terminal restoration. Observed input latency during streaming was 25 ms; Stop restored editable input in 107 ms. These are one-run fixture timings, not a general latency benchmark. This run used build 7; the subsequent execution-obligation admission change requires its own validation.
64
+
65
+ ## Verification status
66
+
67
+ **HOLD publication.** Build 19 passed the CPU checks and admitted the formerly refused live verification reads, but the final 05:17 continuation failed. Its report SHA-256 is `3a08186a1fd062f3e72401b1defbbd3d74c170456ae5b97e97ba0b5ed8e49388`; the unchanged report, trace, placement observations and resulting fixture are preserved in the private ignored acquisition cache. No final positive completion was accepted. The user directed that further fixes be deferred and this exact RCA be filed on GitHub and pushed to `main`. The latest build’s real-TUI inference run was therefore not started; the earlier build-7 pass remains separate evidence.
68
+
69
+ The current source has passed 460 orchestrator cases and 204 CLI cases across 45 test files, including the required web transport lifecycle checks. Four older native-transport failures were reproduced unchanged against commit `3a6fc147` in an isolated HEAD-source copy using the same installed dependencies (not a historic dependency rebuild). Their stale method-source and independent-intent fixtures were updated; the complete file now passes 39 cases with one intentional skip. Two further stale recovery fixtures expected optional grounding despite having no grounding consumer. The same two failures were reproduced against unchanged HEAD with current installed dependencies. Their assertions now check that the actual failure remains in the next primary packet and no unused optional grounder runs; bounded recovery assertions remain. Repeated runs and native Bun subcases are not counted twice. All eleven workspace packages were rebuilt after the v4 admission, owner-bound read-cache, shared retained-review custody, runtime-failure, review-context projection, invocation-scope and post-mutation read-guard changes; the 204-case CLI suite then passed against those rebuilt exports. The builder’s publish-artifact audit passed. Any final tarball audit is packaging evidence only and cannot clear the failed live-completion gate.
70
+
71
+ ## Remaining blocker: stale historical claims in current context
72
+
73
+ Tracked in [GitHub issue #4](https://github.com/robit-man/open-agents/issues/4).
74
+
75
+ The failure is in the production context projection, rather than a missing repair or a fresh-read refusal. `_recordCompletionSummaryClaims` in `agenticRunner.ts` persists assertions from earlier completion summaries. `_refreshOperationalWorkGraph` supplies the full completion ledger to `operational-world/workGraphProjection.ts`, whose proposed-claim loop projects historical statements without checking current physical revisions or supersession. `claimAuthority` labels non-derived claims, including `task_complete_summary`, as adopted. `reasoningSlice.ts` renders those statements without their original run, time or artifact revision.
76
+
77
+ The actual late system context still said that the page had DefaultSans and an empty footer, that “the two required mutations were NOT performed,” that “page.json is unchanged,” and that no editing tool was exposed. Those statements came from the earlier read-only phase. Both real edits had subsequently succeeded; the current file reads matched the reference and `file_edit` was exposed. The worker explicitly called this a conflict and repeated artifact retrieval through its final bounded turns.
78
+
79
+ The independent critic did not miss the real effects. It stated: “two successful file edits (ev_0013, ev_0017) and current source-review reads (ev_0025, ev_0026).” It rejected the candidate’s inaccurate claim that no change had been needed. The worker then tried to resolve a stale artifact-state conflict instead of reconciling the action timeline and correcting that report. Current-byte parity is real; the critic’s bundled objection to the separate byte-identical wording does not invalidate the matching current hashes.
80
+
81
+ The deferred repair must preserve the actual historical receipts while preventing superseded summaries and old capability limits from masquerading as current facts. It needs a regression covering read-only incomplete handoff → real repair → process restart → fresh verification → truthful final report, including an unchanged-read negative control. Hiding the critic, discarding the original request, changing the requirements, or treating confidence as evidence would not repair this defect.
82
+
83
+ ## Real conversations over mock evidence
84
+
85
+ The [complete dialogue](completion-deliberation-examples-20261022.md) preserves actual executor/critic responses from 15 physical requests to the configured model. Three explicitly seeded false claims were rejected with valid `artifact_failed` verdicts: unchanged wrong font, a required command exiting 2, and an external delivery attempt without acknowledgement. Executors withdrew the unsupported claims and described the required repair.
86
+
87
+ The fourth control supplied a synthetic repair receipt. The critic correctly left the mutation unassessed because a mock receipt does not establish an actual file change. That control is inconclusive and the raw demonstration report has `passed: false`; this is not presented as an overall passing execution test. The separately recorded real-file sequence is responsible for demonstrating successful actual repair.
88
+
89
+ ## Limits
90
+
91
+ The initial retained-objective continuation used a new runner in the same OS process. The 05:05 continuation additionally loaded the authentic retained objective and latest ledger in a new OS process after the prior process had stopped; its original request, accepted steering and pending verification obligations survived. That run still ended incomplete at the plateau defect, so process recovery alone is not completion evidence. The neutral fixture is bounded. It is not a production soak, a browser-layout comparison, or a Telegram-delivery test. Replaying a real rejection through the host's challenge tracker proves a bounded guard; it does not prove an autonomous model will stop proposing unchanged claims under every workload. Synthetic repair evidence is a simulation transition, not an observed tool effect.
@@ -0,0 +1,190 @@
1
+ # Premature completion and stale activity in `test_three`
2
+
3
+ The inspected session had stopped making requests because it had committed a
4
+ successful terminal result. It was not waiting for a model at collection time.
5
+ That result did not establish that the original request was fulfilled.
6
+
7
+ ## Evidence and scope
8
+
9
+ Collection was read-only. No input was injected, no project source was changed,
10
+ and no inference, model load, service restart, or GPU deployment was performed.
11
+ The private evidence case is
12
+ `test-three-premature-completion-20261022T013213Z`: 78 initial files, 2,093,283
13
+ bytes, with source stability checks and SHA-256 hashes. Three supplemental
14
+ files preserve font bindings and the persisted agent view. Raw conversations,
15
+ tool outputs, and local runtime records are deliberately excluded from Git.
16
+
17
+ Initial manifest SHA-256:
18
+ `d7d851dbcfc3e24a923d7bd9815c16e8231a518956adf1559225edb6c6b0adcf`.
19
+ Supplemental manifest SHA-256:
20
+ `7e0a9cf823ee7cf384c80916fedf945f6b0b983e74c0394639153b9e5eb596a5`.
21
+
22
+ The terminal receipt identifies the loaded package as `omnius@1.0.893`, with
23
+ module SHA-256
24
+ `7a890817c1b4386b83e8f9ff2b59a387ffc8b1e1e45d77993734b24da8236105`.
25
+ The source baseline inspected for this repair is commit `196cecff`.
26
+
27
+ ## Timeline
28
+
29
+ Times below are UTC on October 21–22, 2026; subtract seven hours for local PDT.
30
+
31
+ | Time | Observed event | Implication |
32
+ | --- | --- | --- |
33
+ | Oct 21 22:01:54 | Original detailed task committed an incomplete result. Its objective had generic effect criteria but no native semantic requirements. | The original request remained unfinished; generic observation, mutation, and verification are insufficient to establish reference parity. |
34
+ | Oct 21 23:16:34 | Last observed application source edit. | Later completion cannot be explained by newly implementing the missing features. |
35
+ | Oct 22 00:52:02 | A new run started with goal `continue until completion` and no objective contract. | The follow-up displaced the original objective instead of continuing it. |
36
+ | 00:55:20 | Parent delegated a read-only discovery brief with that narrowed goal. | The child was not evaluating the complete original acceptance requirements. |
37
+ | 00:56:17 | Child described the existing page as complete and reported default framework fonts. | A child verdict was mistaken for evidence of original requirement coverage. |
38
+ | 00:56:24 | Parent ran a successful production build. | Compilation was demonstrated; visual and reference requirements were not. The build receipt itself is genuine. |
39
+ | 00:57:55 | Parent committed a completed terminal receipt with no unresolved completion obligations. | A real terminal commit recorded an insufficiently grounded success. |
40
+ | 00:59:40 | Optional memory evaluators wrote a failed lifecycle state under the main session identity. | Background bookkeeping obscured the main lifecycle after its terminal result. |
41
+ | 01:28–01:33 | No active or queued inference was observed for this session. Persisted child view had `stage: completed`, `status: running`, and no completion timestamp. | The lingering activity row was stale; it did not establish live progress. |
42
+
43
+ ## Causal defects
44
+
45
+ ### Incomplete results disappeared from frontend outcome handling
46
+
47
+ `startTask` invoked its result callback only inside `if (result.completed)`.
48
+ Normal task admission cleared `lastTaskMeta`. After an ordinary incomplete
49
+ result, the frontend therefore retained null metadata. Its finalizer tested
50
+ `lastTaskMeta?.verified === false`; null did not satisfy that test, and the
51
+ work queue recorded completion. The same missing callback omitted the original
52
+ request and incomplete response from the in-memory conversation used for the
53
+ next admission review.
54
+
55
+ This is a confirmed production path, not an assumption that every normal
56
+ promise resolution means success. Both the callback placement and the null
57
+ comparison are needed to explain the failure.
58
+
59
+ ### Idle continuation had no retained objective authority
60
+
61
+ The interaction router supports an active scope and a reviewed continuity
62
+ decision. Ordinary idle TUI admission did not supply that scope or carry its
63
+ continuity decision into an objective continuation. It passed the latest input
64
+ as `actualUserGoal` and created a fresh runner without an objective contract.
65
+ Only an explicit pending interruption had an identity-preserving path.
66
+
67
+ Consequently, conversational history and handoff prose could suggest earlier
68
+ work, but the runner lacked the original request, accepted steering, and
69
+ requirement identity as completion authority. Matching the word `continue`
70
+ would not repair this: the host must decide whether a message continues,
71
+ replaces, queries, or starts work against the real conversation scope.
72
+
73
+ ### Completion accepted an empty requirement set
74
+
75
+ The original contract already expressed only broad effect categories. The
76
+ latest run had no contract at all. Canonical requirement coverage review was
77
+ conditional on native requirements being present, and generic ledger claims
78
+ were advisory. Completion readiness consequently received no semantic
79
+ obligations and reported ready.
80
+
81
+ An offline reproduction using the retained ledger and the production readiness
82
+ and terminal-record modules reproduced this result: zero obligations, zero
83
+ canonical claims, `intrinsicReady: true`, and a completed terminal record.
84
+ This does not make all heuristic summary claims authoritative, nor does an
85
+ audit ledger remaining `open` by itself prove an invalid terminal. The defect
86
+ is the missing human-origin requirement authority at admission and closeout.
87
+
88
+ A passing build cannot establish that a requested font, layout, reference
89
+ structure, live preview, or other distinct requirement was implemented. In
90
+ this case, inspected source still imported default framework fonts while the
91
+ reference-font assets existed unused. That is concrete counterevidence to the
92
+ unqualified completion claim.
93
+
94
+ ### Internal helpers inherited the main lifecycle identity
95
+
96
+ The two memory evaluators created internal runners without independent session
97
+ identities or a background workload class. Non-subagent runners inherited
98
+ `OMNIUS_SESSION_ID` even when their artifact mode was internal. Their lifecycle
99
+ constructors recovered and persisted the main session file. Subsequent owner
100
+ checks rejected their terminal commits, and their failure projections then
101
+ overwrote that same lifecycle file.
102
+
103
+ The main immutable completion receipt survived. There is no evidence that the
104
+ evaluators changed its run-specific objective ledger or fulfilled the original
105
+ task. Their separate faults were lifecycle contamination, incorrect workload
106
+ priority, and misleading later failure state.
107
+
108
+ ### Child view retirement was not an outcome
109
+
110
+ The saved child row combined a completed stage with a running lifecycle status.
111
+ Conversely, removing a view could manufacture a successful status for a child
112
+ that had never reported an outcome. Presentation must follow an explicit
113
+ terminal result or classify an unresolved retired view as interrupted; a
114
+ stage label and a teardown callback cannot certify completion.
115
+
116
+ ## Repair and validation
117
+
118
+ The repair separates authored task authority, actual tool evidence, independent
119
+ review, and frontend outcome projection:
120
+
121
+ - TUI action admission reviews the complete original request and accepted
122
+ corrections. A separate critic checks that the interpretation preserves that
123
+ scope. Continuation routing receives the retained objective; unrelated new
124
+ work receives a new objective. Native source bytes, conversation ownership,
125
+ and predecessor ledger hashes are checked before reuse.
126
+ - Every returned runtime outcome reaches frontend settlement. Missing results,
127
+ incomplete results, stopped work, and rejected promises cannot become queue
128
+ success or successful learning records merely by resolving a promise.
129
+ - Required human-requirement admission is enforced in tool execution,
130
+ completion readiness, and terminal commit. Generic build success and child
131
+ summaries cannot substitute for the requested semantic comparison.
132
+ - Completion claims receive an independent, evidence-bound challenge against
133
+ the full request and accepted changes. The worker receives specific questions
134
+ about existing artifacts and missing results, and can answer with authentic
135
+ evidence or repair the artifact. The actual reviewer verdict and exchange are
136
+ retained as audit records, not promoted into tool-effect evidence.
137
+ - Identical rejected claims reuse their real challenge rather than launching
138
+ another reviewer. Rewording alone has a bounded review budget, and repeated
139
+ unchanged claims have a bounded feedback budget. Actual new evidence permits
140
+ a fresh review. A supported result can pass immediately; cancellation,
141
+ superseding input, and update/resume release temporary review reservations.
142
+ - Internal memory evaluators have independent sessions, lifecycle storage,
143
+ background admission, and owned cancellation. All-failed evaluations preserve
144
+ the local fallback rather than publishing a fabricated score.
145
+ - Child views settle from actual child outcomes. Teardown without a result
146
+ means stopped, and late progress cannot overwrite a settled stage.
147
+
148
+ Regression fixtures are neutral and use CPU-only mock transports. They do not
149
+ continue the inspected application task or send requests to local inference
150
+ services.
151
+
152
+ A read-only probe of the new recovery selector against the actual `test_three`
153
+ queue and ledgers selected the original detailed request, not the later
154
+ `continue` goals. It identified exactly the two previously applied human
155
+ corrections whose objective lineage was lost. Their relationship is reviewed
156
+ before adoption; sharing a conversation does not automatically authorize it.
157
+ No task was resumed or modified by this probe.
158
+
159
+ The archived-ledger reproduction also confirms the changed boundary: the old
160
+ unstructured call remains compatible for advisory/internal use, while the TUI's
161
+ explicit required-admission policy produces a non-overridable missing-human-
162
+ requirements obligation and refuses success for that same actual ledger.
163
+
164
+ Final verification covered 623 distinct regression cases:
165
+
166
+ | Scope | Result |
167
+ | --- | --- |
168
+ | Core admission, evidence, independent challenges, continuation, interruption and update compatibility | 336 passed across 22 files |
169
+ | TUI admission and settlement, child views, background helpers, daemon admission Stop, and required web transport lifecycle cases | 196 passed across 19 files |
170
+ | Child execution and actual outcome publication | 28 passed |
171
+ | Requirement review and exact citation parsing | 63 passed |
172
+
173
+ The core count combines the broad run with a focused rerun after correcting a
174
+ pre-existing test expectation. A clean baseline reproduced the stale assertion:
175
+ the third request offered a bounded repair for missing mutation evidence. The
176
+ updated test checks that exact feedback, the missing effect, no invented
177
+ mutation, and one incomplete terminal result. No failing case was excluded.
178
+
179
+ All 11 workspaces rebuilt from cleared TypeScript build caches. The complete
180
+ publish bundle and fresh dependency lock passed the artifact audit. The packed
181
+ 881-file development tarball also passed the tarball audit with zero warnings.
182
+ After the final rebuild, nine actual adapter/runner and standalone control
183
+ cases passed again against the compiled outputs; these reruns are not added to
184
+ the distinct-case count above.
185
+
186
+ This verifies the host protocol and the reproduced failure paths. Backend
187
+ responses in the regression suites are controlled fixtures, so this is not a
188
+ benchmark of an actual model's judgment. The inspected live process and its
189
+ application were not restarted, resumed, or altered, and no npm release was
190
+ published as part of this RCA.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.893",
3
+ "version": "1.0.895",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.893",
9
+ "version": "1.0.895",
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.893",
3
+ "version": "1.0.895",
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/library.js",