omnius 1.0.892 → 1.0.894

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/docs/rea.md ADDED
@@ -0,0 +1,39 @@
1
+ # REA reverse engineering
2
+
3
+ Omnius includes [`rea-agents` 6.7.0](https://www.npmjs.com/package/rea-agents/v/6.7.0)
4
+ as a required dependency, with the matching MIT-licensed investigation skill
5
+ and reference guides. The [REA documentation](https://rea.tools/) describes its
6
+ supported targets and analysis providers.
7
+
8
+ ```sh
9
+ omnius rea status --json
10
+ omnius rea analyze-javascript-application "/absolute/path/to/app" --json
11
+ omnius rea --help
12
+ ```
13
+
14
+ `omnius rea` runs the installed package directly. It preserves trailing arguments
15
+ and exit status, requires no model server, and performs no additional npm
16
+ download or setup. Static JavaScript/Electron inspection does not need a native
17
+ decompiler. Native routes use existing provider configuration; Omnius does not
18
+ install Ghidra, Java, Hopper, IDA, or other engines automatically. REA's optional
19
+ native providers keep their own prerequisites.
20
+
21
+ The `omnius-rea` and `reverse-engineer-anything` skills appear in normal skill
22
+ discovery from any working directory. Only their metadata enters the skill
23
+ listing; their bodies and reference guides load when selected. Project-local
24
+ skills retain precedence. The shipped `assets/rea/UPSTREAM.json` records the
25
+ upstream release integrity and checksums of the original skill and license.
26
+
27
+ For an MCP connection, `omnius rea mcp-config` prints the exact installed stdio
28
+ binding without changing any client configuration. `omnius rea --mcp` starts that
29
+ server with unmodified protocol streams. Use the existing MCP onboarding path
30
+ when a task benefits from that connection. Ordinary tasks do not start REA or
31
+ load its full tool catalog.
32
+
33
+ The upstream `omnius rea mcp add` and `omnius rea mcp doctor` commands retain
34
+ their registration and connection-diagnostic behavior and arguments.
35
+
36
+ Begin with the user's explicit artifact or capture. Keep static observations,
37
+ runtime observations, inferences, and unknowns distinct. Preserve evidence
38
+ identities and coverage limits; execute a target only within the requested
39
+ investigation's scope.
@@ -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.