omnius 1.0.690 → 1.0.692

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.
@@ -33864,6 +33864,82 @@
33864
33864
  }
33865
33865
  ]
33866
33866
  },
33867
+ {
33868
+ "id": "guide.work-orders-runtime-health-remediation-wo-22-autocomplete-footer-geometry-uppercase",
33869
+ "kind": "guide",
33870
+ "title": "WO-22: Autocomplete Footer Geometry Integrity",
33871
+ "summary": "Scope: CLI TUI footer, DirectInput redraw scheduling, active content writes",
33872
+ "keywords": [
33873
+ "work",
33874
+ "orders",
33875
+ "runtime",
33876
+ "health",
33877
+ "remediation",
33878
+ "WO",
33879
+ "22",
33880
+ "autocomplete",
33881
+ "footer",
33882
+ "geometry",
33883
+ "md"
33884
+ ],
33885
+ "maturity": "internal",
33886
+ "audiences": [
33887
+ "maintainer",
33888
+ "large-context-agent"
33889
+ ],
33890
+ "layer": "documentation",
33891
+ "interfaces": [
33892
+ {
33893
+ "type": "file",
33894
+ "target": "docs/work-orders/runtime-health-remediation/WO-22-autocomplete-footer-geometry.md"
33895
+ }
33896
+ ],
33897
+ "references": [
33898
+ {
33899
+ "type": "documentation",
33900
+ "target": "docs/work-orders/runtime-health-remediation/WO-22-autocomplete-footer-geometry.md",
33901
+ "relation": "canonical-artifact"
33902
+ }
33903
+ ]
33904
+ },
33905
+ {
33906
+ "id": "guide.work-orders-telegram-dmn-wo-22-dmn-outreach-and-learning-uppercase",
33907
+ "kind": "guide",
33908
+ "title": "WO-22: DMN outreach, DM sharing, and outcome learning",
33909
+ "summary": "On 2026-09-03 at 17:07 PDT the bot posted in the OMNIUS group without being addressed. The operator asked whether this was self-induced reflection.",
33910
+ "keywords": [
33911
+ "work",
33912
+ "orders",
33913
+ "telegram",
33914
+ "dmn",
33915
+ "WO",
33916
+ "22",
33917
+ "dmn",
33918
+ "outreach",
33919
+ "and",
33920
+ "learning",
33921
+ "md"
33922
+ ],
33923
+ "maturity": "internal",
33924
+ "audiences": [
33925
+ "maintainer",
33926
+ "large-context-agent"
33927
+ ],
33928
+ "layer": "documentation",
33929
+ "interfaces": [
33930
+ {
33931
+ "type": "file",
33932
+ "target": "docs/work-orders/telegram-dmn/WO-22-dmn-outreach-and-learning.md"
33933
+ }
33934
+ ],
33935
+ "references": [
33936
+ {
33937
+ "type": "documentation",
33938
+ "target": "docs/work-orders/telegram-dmn/WO-22-dmn-outreach-and-learning.md",
33939
+ "relation": "canonical-artifact"
33940
+ }
33941
+ ]
33942
+ },
33867
33943
  {
33868
33944
  "id": "guide.work-orders-telegram-dropbear-context-rca-workorder",
33869
33945
  "kind": "guide",
package/docs/DISCOVERY.md CHANGED
@@ -560,6 +560,8 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
560
560
  | `guide.work-orders-runtime-health-remediation-wo-19-clean-build-reproducibility-uppercase` | WO-19: Clean Build and Optional-Dependency Reproducibility | Status: deterministic acceptance complete Risk: medium Depends on: WO-00 |
561
561
  | `guide.work-orders-runtime-health-remediation-wo-20-exact-session-continuation-uppercase` | WO-20: Exact session continuation across exit and restart | On 2026-09-03, the telegramtest TUI displayed the latest pentest task during startup, but the first restored model context combined a completed breach.py handoff with an unrelated, older page.tsx todo tree. The user then entered continue, and Omnius continued the stale tree instead of the task that was active before /quit. |
562
562
  | `guide.work-orders-runtime-health-remediation-wo-21-task-convergence-and-todo-scope-uppercase` | WO-21: Task convergence and todo scope | On 2026-09-03, a user reported that Omnius remained at task 2/8 for about 40 turns. The report did not include a screenshot or run artifact, so the exact label remains unverified. Omnius has two similar counters: |
563
+ | `guide.work-orders-runtime-health-remediation-wo-22-autocomplete-footer-geometry-uppercase` | WO-22: Autocomplete Footer Geometry Integrity | Scope: CLI TUI footer, DirectInput redraw scheduling, active content writes |
564
+ | `guide.work-orders-telegram-dmn-wo-22-dmn-outreach-and-learning-uppercase` | WO-22: DMN outreach, DM sharing, and outcome learning | On 2026-09-03 at 17:07 PDT the bot posted in the OMNIUS group without being addressed. The operator asked whether this was self-induced reflection. |
563
565
  | `guide.work-orders-telegram-dropbear-context-rca-workorder` | Telegram Dropbear Context Engineering RCA Work Order | Observed run: /home/roko/Documents/Projects/Adjacent/telegramtest/.omnius, run id 1782873796963-i5r7mv. |
564
566
  | `guide.work-orders-wo-am-gaps-uppercase` | Associative Memory Gap Work Orders | Generated: 2026-04-13 Source: Deep audit of multimodal associative memory systems Status: READY FOR IMPLEMENTATION |
565
567
  | `guide.work-orders-world-class-memory-compiler-readme-uppercase` | World-Class Memory Compiler Program | Status: active implementation program Owner: Omnius orchestration and memory packages Last updated: 2026-07-13 |
@@ -320,6 +320,15 @@ deterministically repaired P0 or P1 defect.
320
320
  - [x] Latch an advisory convergence review when the leaf frontier is static.
321
321
  - [x] Make loop, reminder, budget, and workboard progress semantics truthful.
322
322
  - [x] Pass deterministic race, stasis, display, typecheck, and build tests.
323
+ - [x] WO-22 autocomplete footer geometry uses the last painted layout as its
324
+ terminal authority and clears all released rows during idle and active-stream
325
+ contraction.
326
+ - [x] Trace the deferred DirectInput repaint and content-write ordering race.
327
+ - [x] Confirm existing tests do not model final terminal cells in this path.
328
+ - [x] Unify idle and streaming geometry transitions around deterministic
329
+ replay.
330
+ - [x] Cover precommitted multi-match to fewer-match and zero-match contraction.
331
+ - [x] Pass focused footer tests, CLI typecheck, and CLI build.
323
332
  - [x] A recovered pause no longer strands its session. Submitting a new task
324
333
  retires the superseded generation instead of refusing every later prompt,
325
334
  while unreconciled external effects still fence admission.
@@ -0,0 +1,93 @@
1
+ # WO-22: Autocomplete Footer Geometry Integrity
2
+
3
+ **Status:** complete
4
+
5
+ **Observed:** 2026-09-03
6
+
7
+ **Scope:** CLI TUI footer, DirectInput redraw scheduling, active content writes
8
+
9
+ ## Failure
10
+
11
+ When slash-command autocomplete expands and then contracts, rows from the old
12
+ footer can remain visible above the current input box. The captured failure
13
+ occurred while `file_read` content was active. A complete old input box and old
14
+ suggestion rows remained in the content viewport after the live footer moved
15
+ down.
16
+
17
+ ## Root cause
18
+
19
+ DirectInput emits a change and schedules footer painting with `setImmediate`.
20
+ If content output starts before that callback, `beginContentWrite()` recomputes
21
+ and stores the new footer height. The later renderer reconstructs the supposed
22
+ old footer top from that already-mutated height. It therefore observes no
23
+ height change and skips the transition clear.
24
+
25
+ The terminal's last painted geometry and the logical layout are separate
26
+ states. `_lastFooterPaintTop` is the authority for the former. A mutable
27
+ `_currentFooterHeight` cannot be used to infer what remains on screen.
28
+
29
+ The streaming renderer also uses incremental line-feed and reverse-index
30
+ compensation when the footer moves. That path depends on terminal scroll-region
31
+ semantics and does not deterministically rebuild released rows from Omnius's
32
+ scrollback model.
33
+
34
+ ## Invariants
35
+
36
+ - Every footer renderer compares the new top with the last successfully painted
37
+ footer top.
38
+ - A changed logical height or changed painted top is a geometry transition.
39
+ - Geometry transitions update DECSTBM, clear the complete old/new footer union,
40
+ replay content from the virtual scrollback, repaint tasks, and then paint the
41
+ new footer.
42
+ - Active content writes do not use line feed, reverse index, or cursor-offset
43
+ guesses to compensate for footer growth or shrinkage.
44
+ - After a geometry transition, token chunks enter the bounded 33 ms replay
45
+ scheduler. They do not cause synchronous full-viewport repainting per token.
46
+ - Replay-consumed stdout writes preserve callback completion, and stream close
47
+ paints any final coalesced line before returning ownership to the idle footer.
48
+ - Cursor-preserving animation and metrics frames cannot accept a precomputed
49
+ footer position before the transition is cleared.
50
+ - Footer chrome writes bypass the buffered content layer.
51
+ - The native streaming cursor is restored by content replay, while the input
52
+ cursor remains owned by the idle path.
53
+ - Repeated expansion and contraction is idempotent and cannot accumulate rows.
54
+
55
+ ## Work items
56
+
57
+ - [x] Trace DirectInput change ordering and scheduled redraw ownership.
58
+ - [x] Trace `beginContentWrite()` layout mutation and terminal paint ordering.
59
+ - [x] Confirm the idle source-level regression test does not cover active writes.
60
+ - [x] Confirm the PTY helper does not interpret final terminal cells.
61
+ - [x] Make last-painted footer geometry authoritative in the idle renderer.
62
+ - [x] Route active-stream geometry transitions through deterministic replay.
63
+ - [x] Preserve the direct terminal bypass for chrome paints.
64
+ - [x] Add a test for a precommitted logical shrink before idle paint.
65
+ - [x] Add a test for a precommitted logical shrink during active content output.
66
+ - [x] Cover multi-match to fewer-match and multi-match to zero-match transitions.
67
+ - [x] Prove no reverse-index compensation remains in the streaming transition.
68
+ - [x] Run the focused footer and DirectInput suite.
69
+ - [x] Run CLI typecheck and build.
70
+ - [x] Inspect the scoped diff and record acceptance evidence.
71
+
72
+ ## Acceptance evidence
73
+
74
+ - `StatusBar.paintedFooterTop()` uses `_lastFooterPaintTop` as physical screen
75
+ authority, with a logical-height fallback only before the first paint.
76
+ - Both footer render paths treat either a height change or a painted-top change
77
+ as a geometry transition.
78
+ - Active-stream transitions update DECSTBM, clear the old/new footer union, fill
79
+ and replay the viewport, refresh tasks, and repaint the footer. Later chunks
80
+ stay in a coalesced virtual replay until the stream closes.
81
+ - `footer-suggestion-shrink-render.test.ts` executes five-to-one and one-to-zero
82
+ contraction after precommitting the logical height. Its ANSI framebuffer
83
+ confirms that prior suggestion text is absent from final terminal cells.
84
+ - The same test executes the five-to-one race with `writeDepth > 0` and confirms
85
+ the replay path. A following token does not trigger an immediate repaint, its
86
+ write callback completes, and stream close performs the final replay.
87
+ - A cursor-preserving-frame regression proves that a precomputed logical layout
88
+ cannot overwrite the last-painted geometry before cleanup.
89
+ - The focused footer/DirectInput suite passed: 6 files, 44 tests.
90
+ - The complete CLI suite passed: 262 files, 2,446 tests.
91
+ - `pnpm --filter omnius typecheck` passed.
92
+ - `pnpm --filter omnius build` passed.
93
+ - No live inference or CUDA workload was used.
@@ -0,0 +1,85 @@
1
+ # WO-22: DMN outreach, DM sharing, and outcome learning
2
+
3
+ ## Incident
4
+
5
+ On 2026-09-03 at 17:07 PDT the bot posted in the OMNIUS group without being
6
+ addressed. The operator asked whether this was self-induced reflection.
7
+
8
+ It was not. The post was reactive to two inbound messages (5680, 5681) and
9
+ authorized as `direct_turn`. The stated router reason — *"Sender reacts to
10
+ bot's recent output in active thread"* — was false: the cited self-bearing
11
+ evidence was `turn:5678`, a bot reply from **09-01**, to a different user,
12
+ about a different topic.
13
+
14
+ Two independent defects produced that:
15
+
16
+ - `buildTelegramInteractionEvidencePacket` selects causal history with
17
+ `.slice(-8)` and **no time bound**. In a quiet room the last 8 messages
18
+ reach back days.
19
+ - The `direct_turn` validator requires a cited self-bearing evidence entry but
20
+ checks only *kind* and *actor*, never *recency*. A two-day-old turn satisfied
21
+ it.
22
+
23
+ Investigating that surfaced the larger finding below.
24
+
25
+ ## The real finding: reflection could not speak
26
+
27
+ Omnius reflects constantly — **465 daydream artifacts on 2026-09-03 alone** —
28
+ and roughly two thirds of recent artifacts proposed a same-group follow-up.
29
+ None were ever sent. Across 639 committed routing decisions in this workspace,
30
+ `social_intervention` fired exactly **once**; the other 432 replies were all
31
+ `direct_turn`.
32
+
33
+ Root cause was ID plumbing, not judgement:
34
+
35
+ - The extraction schema advertised `reply_to_message_id: 1` and
36
+ `source_message_ids: [1]` as examples. **78.6% of live follow-up proposals
37
+ echoed a placeholder-like id**, `1` being the single most common value.
38
+ - Those ids never matched real Telegram ids, so `candidateMessageIds` was
39
+ almost always empty.
40
+ - The discretion prompt then instructed the model to *"cite at least one
41
+ current eligible Telegram message ID"* **without ever listing which ids were
42
+ eligible**, while the host discarded any follow-up citing an id outside that
43
+ undisclosed set.
44
+
45
+ Silence was the only reachable outcome.
46
+
47
+ ## Changes
48
+
49
+ | Area | Change |
50
+ | --- | --- |
51
+ | Extraction prompt | Schema example ids replaced with non-numeric sentinels; explicit rule that ids must appear literally in the corpus; the valid id set is now stated. |
52
+ | Extraction result | `runTelegramReflectionExtraction` drops any `source_message_ids` / `reply_to_message_id` absent from the corpus, so a copied or hallucinated anchor cannot reach the follow-up gate. |
53
+ | Discretion prompt | Now supplies `Eligible evidence message IDs`, the exact set the host validates against. |
54
+ | DM reflection | Idle reflection and outreach admitted for private chats **only after that chat opts in** via `/reflect auto on`. Default remains off. |
55
+ | Outcome learning | New `telegram-outreach-outcomes.ts` records every autonomous send and settles it as engaged / ignored from subsequent room traffic. Settled history is fed back into the next discretion call. |
56
+
57
+ ## Design notes
58
+
59
+ - **DMs are opt-in, not default.** A DM is one person's inbox. The capability
60
+ exists; the host does not enable it on the recipient's behalf.
61
+ - **Silence is recorded as a real signal.** An unanswered outreach settles to
62
+ `engaged: false` after 45 minutes rather than staying unknown, so the
63
+ calibration block cannot mistake absence of data for success.
64
+ - **The bot's own traffic never counts as engagement.** Only a human message
65
+ inside the window closes an outcome positively.
66
+ - **Calibration is neutral before it is negative.** With no settled history the
67
+ prompt says so and asks the model to judge on merit; it raises the bar only
68
+ once every settled attempt was ignored.
69
+
70
+ ## Not addressed
71
+
72
+ The evidence-packet recency defect that produced the original false
73
+ `direct_turn` remains open. Bounding causal history by time would push honest
74
+ unaddressed interjections onto the `social_intervention` path, where they are
75
+ visible and tunable — but `social_intervention` currently has **no validation
76
+ rules at all** (compare five checks for `direct_turn`). Both should be done
77
+ together so interjection becomes a governed capability rather than an
78
+ unvalidated fallback.
79
+
80
+ ## Verification
81
+
82
+ CLI suite: 2442 passed, 0 failed (261 files). Typecheck clean; `pnpm -r build`
83
+ clean. 14 new tests covering id anchoring, corpus allow-list enforcement,
84
+ outcome settlement, calibration wording, torn-ledger recovery, and bridge
85
+ wiring.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.690",
3
+ "version": "1.0.692",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.690",
9
+ "version": "1.0.692",
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.690",
3
+ "version": "1.0.692",
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",