omnius 1.0.800 → 1.0.801

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
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: package/dist/index.js
3
- size: 39351823 bytes
4
- sha256: 812b782621e8e4b7fb2af446cd38684559e1ea1fa8c79c43345605a4084e24c8
3
+ size: 39375009 bytes
4
+ sha256: 90e931d1af7190d874d22d66a022df4a0a1c75565942a4db236a5e7a2298cf92
@@ -31168,6 +31168,41 @@
31168
31168
  }
31169
31169
  ]
31170
31170
  },
31171
+ {
31172
+ "id": "guide.research-translation-model-routing-2026-10-03",
31173
+ "kind": "guide",
31174
+ "title": "Translation model routing note — 2026-10-03",
31175
+ "summary": "Do not use the 9B general Omnius model as the unconditional translation lane. Keep it as the semantic fallback for translation requests that also require reasoning, terminology negotiation, long conversational context, or tool use. Route plain, typed translation requests to a smaller translation-specific model selected by language coverage and license.",
31176
+ "keywords": [
31177
+ "research",
31178
+ "translation",
31179
+ "model",
31180
+ "routing",
31181
+ "2026",
31182
+ "10",
31183
+ "03",
31184
+ "md"
31185
+ ],
31186
+ "maturity": "internal",
31187
+ "audiences": [
31188
+ "maintainer",
31189
+ "large-context-agent"
31190
+ ],
31191
+ "layer": "documentation",
31192
+ "interfaces": [
31193
+ {
31194
+ "type": "file",
31195
+ "target": "docs/research/translation-model-routing-2026-10-03.md"
31196
+ }
31197
+ ],
31198
+ "references": [
31199
+ {
31200
+ "type": "documentation",
31201
+ "target": "docs/research/translation-model-routing-2026-10-03.md",
31202
+ "relation": "canonical-artifact"
31203
+ }
31204
+ ]
31205
+ },
31171
31206
  {
31172
31207
  "id": "guide.rest-auth-and-scopes",
31173
31208
  "kind": "guide",
@@ -35906,7 +35941,7 @@
35906
35941
  "id": "guide.work-orders-runtime-health-remediation-wo-57-telegram-delivery-truth-and-recovery-uppercase",
35907
35942
  "kind": "guide",
35908
35943
  "title": "WO-57: Telegram delivery truth, reminder authority, and bounded recovery",
35909
- "summary": "Status: 1.0.798 live acceptance failed on Case Theory message 650; REQ-TDT-018 delivery-commit convergence and complete batch-scope repair are verified and pushed; full-suite, publication, redeployment, and live-acceptance gates remain open Priority: P0 Incident: October 1, 2026, live Telegram reminder and illegal-logging non-responses Owner: Omnius orchestr",
35944
+ "summary": "Status: REQ-TDT-019 and the REQ-TDT-016 lease correction were delivered in cdf81ffd; the 23-file Case Theory acceptance run then exposed the terminal same-response contract mismatch tracked by REQ-TDT-020. Its source repair was delivered in 1b451bc8; publication, redeployment, live acceptance, and the pre-existing full-suite debt recorded below remain open. ",
35910
35945
  "keywords": [
35911
35946
  "work",
35912
35947
  "orders",
@@ -35942,6 +35977,84 @@
35942
35977
  }
35943
35978
  ]
35944
35979
  },
35980
+ {
35981
+ "id": "guide.work-orders-runtime-health-remediation-wo-58-agent-scoped-footer-observability-uppercase",
35982
+ "kind": "guide",
35983
+ "title": "WO-58 — Agent-scoped footer observability",
35984
+ "summary": "Status: source delivered in 8a81eab6; deployment acceptance pending",
35985
+ "keywords": [
35986
+ "work",
35987
+ "orders",
35988
+ "runtime",
35989
+ "health",
35990
+ "remediation",
35991
+ "WO",
35992
+ "58",
35993
+ "agent",
35994
+ "scoped",
35995
+ "footer",
35996
+ "observability",
35997
+ "md"
35998
+ ],
35999
+ "maturity": "internal",
36000
+ "audiences": [
36001
+ "maintainer",
36002
+ "large-context-agent"
36003
+ ],
36004
+ "layer": "documentation",
36005
+ "interfaces": [
36006
+ {
36007
+ "type": "file",
36008
+ "target": "docs/work-orders/runtime-health-remediation/WO-58-agent-scoped-footer-observability.md"
36009
+ }
36010
+ ],
36011
+ "references": [
36012
+ {
36013
+ "type": "documentation",
36014
+ "target": "docs/work-orders/runtime-health-remediation/WO-58-agent-scoped-footer-observability.md",
36015
+ "relation": "canonical-artifact"
36016
+ }
36017
+ ]
36018
+ },
36019
+ {
36020
+ "id": "guide.work-orders-runtime-health-remediation-wo-59-telegram-restart-edit-crash-uppercase",
36021
+ "kind": "guide",
36022
+ "title": "WO-59: Telegram restart edit crash and terminal-intake monotonicity",
36023
+ "summary": "Status: COMPLETE — implemented, verified, and pushed in 9fadef51 Priority: P0 Incident: October 3, 2026, telegramtest TUI exits immediately while loading the OMNIUS Telegram session Owner: Omnius Telegram durable-intake runtime Depends on: WO-57 Completion rule: Mark a checkbox complete only when its code anchor and deterministic evidence exist. Do not delet",
36024
+ "keywords": [
36025
+ "work",
36026
+ "orders",
36027
+ "runtime",
36028
+ "health",
36029
+ "remediation",
36030
+ "WO",
36031
+ "59",
36032
+ "telegram",
36033
+ "restart",
36034
+ "edit",
36035
+ "crash",
36036
+ "md"
36037
+ ],
36038
+ "maturity": "internal",
36039
+ "audiences": [
36040
+ "maintainer",
36041
+ "large-context-agent"
36042
+ ],
36043
+ "layer": "documentation",
36044
+ "interfaces": [
36045
+ {
36046
+ "type": "file",
36047
+ "target": "docs/work-orders/runtime-health-remediation/WO-59-telegram-restart-edit-crash.md"
36048
+ }
36049
+ ],
36050
+ "references": [
36051
+ {
36052
+ "type": "documentation",
36053
+ "target": "docs/work-orders/runtime-health-remediation/WO-59-telegram-restart-edit-crash.md",
36054
+ "relation": "canonical-artifact"
36055
+ }
36056
+ ]
36057
+ },
35945
36058
  {
35946
36059
  "id": "guide.work-orders-telegram-dmn-wo-22-dmn-outreach-and-learning-uppercase",
35947
36060
  "kind": "guide",
package/docs/DISCOVERY.md CHANGED
@@ -480,6 +480,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
480
480
  | `guide.research-archived-readme-uppercase` | Archived design notes — unwired | Documents in this directory describe design proposals that were never wired into the runtime. They are kept for historical context only. |
481
481
  | `guide.research-k-splanifolds` | K Splanifolds | Bundled Omnius documentation artifact: docs/research/k-splanifolds.pdf. |
482
482
  | `guide.research-personality-verbosity-control` | LLM Personality Guidance &amp; Verbosity Control: Research Synthesis | Date: 2026-03-13 Purpose: Literature review and integration strategy for transient personality/verbosity steering in the Omnius framework |
483
+ | `guide.research-translation-model-routing-2026-10-03` | Translation model routing note — 2026-10-03 | Do not use the 9B general Omnius model as the unconditional translation lane. Keep it as the semantic fallback for translation requests that also require reasoning, terminology negotiation, long conversational context, or tool use. Route plain, typed translation requests to a smaller translation-specific model selected by language coverage and license. |
483
484
  | `guide.rest-auth-and-scopes` | Auth And Scopes | Omnius can run without auth for local development, but shared deployments should use bearer keys. |
484
485
  | `guide.rest-endpoints-aims` | AIMS Governance Endpoints | Omnius exposes an ISO/IEC 42001-oriented AI Management System surface for audit-aligned deployments. |
485
486
  | `guide.rest-endpoints-aiwg` | AIWG Cascade Endpoints | AIWG endpoints expose a discover-then-expand documentation and workflow model for small and large context agents. |
@@ -609,7 +610,9 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
609
610
  | `guide.work-orders-runtime-health-remediation-wo-54-case-theory-router-deferral-recovery-uppercase` | WO-54: Case Theory router deferral recovery | Status: complete Priority: P0 Incident: September 26, 2026, Case Theory messages 455–456 Runtime observed: globally installed Omnius 1.0.764 Owner: current implementation session |
610
611
  | `guide.work-orders-runtime-health-remediation-wo-55-telegram-pressure-recovery-uppercase` | WO-55: Telegram pressure recovery without silent terminal states | Status: complete Priority: P0 Incident: September 26, 2026, Case Theory messages 458-461 Owner: current implementation session |
611
612
  | `guide.work-orders-runtime-health-remediation-wo-56-evidence-driven-objective-loop-uppercase` | WO-56: Evidence-driven objective loop and nonblocking execution | Status: repository implementation complete; live Telegram acceptance remains an external gate Priority: P0 Incident: September 27, 2026, Telegram SSH-over-Cloudflare task spiral and TUI freeze Owner: Omnius orchestration, execution, and Telegram runtime Depends on: WO-05, WO-21, WO-27, WO-41, WO-44, WO-49, WO-54, WO-55 Completion rule: A checkbox may be mark |
612
- | `guide.work-orders-runtime-health-remediation-wo-57-telegram-delivery-truth-and-recovery-uppercase` | WO-57: Telegram delivery truth, reminder authority, and bounded recovery | Status: 1.0.798 live acceptance failed on Case Theory message 650; REQ-TDT-018 delivery-commit convergence and complete batch-scope repair are verified and pushed; full-suite, publication, redeployment, and live-acceptance gates remain open Priority: P0 Incident: October 1, 2026, live Telegram reminder and illegal-logging non-responses Owner: Omnius orchestr |
613
+ | `guide.work-orders-runtime-health-remediation-wo-57-telegram-delivery-truth-and-recovery-uppercase` | WO-57: Telegram delivery truth, reminder authority, and bounded recovery | Status: REQ-TDT-019 and the REQ-TDT-016 lease correction were delivered in cdf81ffd; the 23-file Case Theory acceptance run then exposed the terminal same-response contract mismatch tracked by REQ-TDT-020. Its source repair was delivered in 1b451bc8; publication, redeployment, live acceptance, and the pre-existing full-suite debt recorded below remain open. |
614
+ | `guide.work-orders-runtime-health-remediation-wo-58-agent-scoped-footer-observability-uppercase` | WO-58 — Agent-scoped footer observability | Status: source delivered in 8a81eab6; deployment acceptance pending |
615
+ | `guide.work-orders-runtime-health-remediation-wo-59-telegram-restart-edit-crash-uppercase` | WO-59: Telegram restart edit crash and terminal-intake monotonicity | Status: COMPLETE — implemented, verified, and pushed in 9fadef51 Priority: P0 Incident: October 3, 2026, telegramtest TUI exits immediately while loading the OMNIUS Telegram session Owner: Omnius Telegram durable-intake runtime Depends on: WO-57 Completion rule: Mark a checkbox complete only when its code anchor and deterministic evidence exist. Do not delet |
613
616
  | `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. |
614
617
  | `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. |
615
618
  | `guide.work-orders-telegram-reliability-consolidation-2026-09-28` | Telegram Reliability Consolidation — 2026-09-28 | Rule: check a box only after the named behavior is implemented and its listed verification passes. A parent box stays open until every child box is checked. |
@@ -0,0 +1,87 @@
1
+ # Translation model routing note — 2026-10-03
2
+
3
+ ## Decision
4
+
5
+ Do not use the 9B general Omnius model as the unconditional translation lane.
6
+ Keep it as the semantic fallback for translation requests that also require
7
+ reasoning, terminology negotiation, long conversational context, or tool use.
8
+ Route plain, typed translation requests to a smaller translation-specific
9
+ model selected by language coverage and license.
10
+
11
+ Recommended evaluation order:
12
+
13
+ 1. **TranslateGemma 4B** for the supported 55-language set when quality is the
14
+ priority and the Gemma license is acceptable. Google reports that the 4B
15
+ translation-tuned model rivals its larger 12B Gemma baseline. It also
16
+ supports image-text translation and has published quantized deployment
17
+ paths. Its material constraint is a 2K-token input context and a strict
18
+ source/target-language template; it is not a drop-in conversational agent.
19
+ 2. **MADLAD-400 3B MT** as the broad, permissively licensed multilingual lane.
20
+ The published model card lists 419 languages, Apache-2.0 licensing, a 3B T5
21
+ architecture, and a 1.65 GB Q4K artifact versus 11.8 GB original weights.
22
+ It is the strongest first candidate when Omnius needs broad language
23
+ coverage under a production-compatible license.
24
+ 3. **OPUS-MT/Marian pair-specific models** for a small set of hot language
25
+ pairs where minimum residency and latency matter most. A representative
26
+ English-Maltese checkpoint is 294 MB and Apache-2.0. The tradeoff is model
27
+ and routing proliferation: every direction/pair needs explicit inventory,
28
+ health, and fallback management.
29
+ 4. **NLLB-200 distilled 600M** only for research/non-commercial evaluation or
30
+ an explicitly compatible use. It covers 196 listed languages at 600M
31
+ parameters, but its CC-BY-NC license and model-card limitations make it a
32
+ poor default production choice. Meta describes it as research-oriented,
33
+ single-sentence translation, not production/document translation, with
34
+ training inputs capped at 512 tokens.
35
+
36
+ ## Operational fit
37
+
38
+ | Candidate | Best fit | Important constraint | Recommendation |
39
+ | --- | --- | --- | --- |
40
+ | TranslateGemma 4B | High-quality text/image translation in 55 languages | Gemma license, strict language-coded template, 2K context | Primary quality candidate |
41
+ | MADLAD-400 3B MT | Very broad multilingual text under Apache-2.0 | General-domain research model; validate target pairs | Primary broad-production candidate |
42
+ | OPUS-MT/Marian | Fixed high-volume language pairs | Pair/direction-specific fleet complexity | Lowest-footprint specialist lane |
43
+ | NLLB-200 600M | Low-resource research and offline comparison | CC-BY-NC, 512-token training limit, not production/document use | Evaluation only |
44
+ | Qwen3.5 9B Omnius lane | Mixed translation + reasoning/tools/context | Higher residency and latency; generic rather than MT-specific | Semantic fallback, not default MT |
45
+
46
+ ## Router contract
47
+
48
+ A translation lane should be selected only when the request has a closed,
49
+ typed contract:
50
+
51
+ - source language and target language are explicit or detection has a receipt;
52
+ - the requested operation is translation only—no hidden summarization,
53
+ extraction, browsing, or tool work;
54
+ - source text, markup policy, glossary version, and source hash are retained;
55
+ - chunking respects sentence/document boundaries and rejoins deterministically;
56
+ - the selected model supports the pair, input length, script, and license;
57
+ - terminology and protected tokens are validated after generation;
58
+ - low confidence, unsupported pairs, glossary violations, or mixed reasoning
59
+ requirements fall back to the general Omnius lane.
60
+
61
+ The lane lease should follow the same rule as the Telegram repair: a finite
62
+ TTL that renews on model events, expires naturally when stale, and never stays
63
+ resident merely because a request once existed.
64
+
65
+ ## Evaluation gate
66
+
67
+ Before changing Mapsource or broker routing, build a representative corpus for
68
+ the actual language pairs and text types. Compare the current 9B lane with the
69
+ three license-compatible candidates on:
70
+
71
+ - adequacy and named-entity/number preservation;
72
+ - terminology and markup preservation;
73
+ - p50/p95 first-token and completion latency;
74
+ - peak/resident VRAM and cold-load time;
75
+ - empty, truncated, wrong-language, and hallucinated-output rates;
76
+ - long-input chunk/reassembly behavior.
77
+
78
+ No live benchmark was run during this repair. Local model loading requires the
79
+ repository's accelerator preflight and GPU lease protocol.
80
+
81
+ ## Primary sources
82
+
83
+ - [Google TranslateGemma 4B model card](https://huggingface.co/google/translategemma-4b-it)
84
+ - [Google TranslateGemma announcement and WMT24++ summary](https://blog.google/innovation-and-ai/technology/developers-tools/translategemma/)
85
+ - [Google MADLAD-400 3B MT model card](https://huggingface.co/google/madlad400-3b-mt)
86
+ - [Meta NLLB-200 distilled 600M model card](https://huggingface.co/facebook/nllb-200-distilled-600M)
87
+ - [Helsinki-NLP OPUS-MT English-Maltese model inventory](https://huggingface.co/Helsinki-NLP/opus-mt-en-mt/tree/main)
@@ -1,9 +1,10 @@
1
1
  # WO-57: Telegram delivery truth, reminder authority, and bounded recovery
2
2
 
3
- **Status:** 1.0.798 live acceptance failed on Case Theory message 650;
4
- REQ-TDT-018 delivery-commit convergence and complete batch-scope repair are
5
- verified and pushed; full-suite, publication, redeployment, and live-acceptance
6
- gates remain open
3
+ **Status:** REQ-TDT-019 and the REQ-TDT-016 lease correction were delivered in
4
+ `cdf81ffd`; the 23-file Case Theory acceptance run then exposed the terminal
5
+ same-response contract mismatch tracked by REQ-TDT-020. Its source repair was
6
+ delivered in `1b451bc8`; publication, redeployment, live acceptance, and the
7
+ pre-existing full-suite debt recorded below remain open.
7
8
  **Priority:** P0
8
9
  **Incident:** October 1, 2026, live Telegram reminder and illegal-logging non-responses
9
10
  **Owner:** Omnius orchestrator and Telegram runtime
@@ -138,6 +139,27 @@ please follow her instructions`, but the explicit-continuation grammar
138
139
  every retry reported `object work remains frozen`, no runner artifact
139
140
  changed after the false terminal commit, and typing ceased while the
140
141
  Telegram poller remained healthy.
142
+ - [x] Anchor the 1.0.800 quick-chat commitment failure: OMNIUS message 5727 was
143
+ a native reply in topic 5712 saying `@omnius_agent_bot do it and provide
144
+ a report here`. The router understood the prior commitment but selected
145
+ zero-tool chat; message 5728 only promised to pull the Borneo data, the
146
+ intake was consumed, and no action task or retrieval run was created.
147
+ - [x] Anchor the 1.0.800 Case Theory liveness risk: message 651 correctly
148
+ retained all 23 PDF criteria and advanced through 19 successful native
149
+ PDF reads, but Telegram configured `requestTimeoutMs:0` while the runner
150
+ watchdog exempted admitted inference. A backend promise that stopped
151
+ producing events could therefore retain the session forever.
152
+ - [x] Anchor the message-651 terminal contract failure: all 23 PDFs were read,
153
+ the model authored the complete 23-row answer, and the objective frontier
154
+ reached `deliver_due` with only `effect:visible_response` open. The same
155
+ response called `task_complete(summary:...)` without duplicating that
156
+ long answer into `user_reply`; the bridge rejected it, no provider
157
+ delivery receipt was created, and the run ended
158
+ `incomplete_verification` at `2026-10-02T18:20:41-07:00`.
159
+ - [x] Anchor convergence contamination: the first current-run completion
160
+ admission miss inherited 26 persisted rounds from the generic
161
+ `1:task_complete:no-target` family and immediately triggered forced
162
+ replanning for an unrelated objective.
141
163
 
142
164
  Runtime evidence:
143
165
 
@@ -352,8 +374,11 @@ Primary anchors:
352
374
  - [x] Renew the Telegram runner lease on every routed AgenticRunner lifecycle
353
375
  event, while excluding Telegram typing/UI timers that could otherwise
354
376
  keep an orphan alive indefinitely.
355
- - [x] Suppress lease expiry while an exact-session inference is admitted; the
356
- inference operation retains its own bounded deadline.
377
+ - [x] Suppress the outer runner lease only while an exact-session inference is
378
+ admitted and owns its own finite deadline. Telegram may not set
379
+ `requestTimeoutMs:0`; the configured/default inactivity lease is renewed
380
+ by every stream chunk, while unary auxiliary requests remain absolutely
381
+ bounded.
357
382
  - [x] On genuine event silence past the configured TTL, fence the generation,
358
383
  abort its runner/controller, release its session ownership, and requeue
359
384
  the exact retained intake through the existing durable recovery path.
@@ -674,6 +699,92 @@ Primary anchors:
674
699
  - `packages/cli/tests/telegram-lifecycle-leak.test.ts`
675
700
  - `packages/cli/tests/telegram-bot-api-10.test.ts`
676
701
 
702
+ ### REQ-TDT-019 — independent fulfillment and plan-before-promise transfer
703
+
704
+ - [x] Separate transport/latency eligibility from fulfillment authority. A
705
+ router-approved conversational route may use the fast transport, but it
706
+ cannot certify that the generated candidate fulfilled the request.
707
+ - [x] Run the independent typed fulfillment review for every quick-chat
708
+ candidate; remove the host branch that fabricated
709
+ `taskState:"fulfilled"` for low-risk group chat.
710
+ - [x] Withhold every candidate classified `taskState:"continue"` from native
711
+ draft and Telegram message delivery. A future-work promise is local
712
+ untrusted text, not a provider-visible terminal response.
713
+ - [x] Convert `continue` to action, obtain a complete input-bound plan with
714
+ nonempty scoped tool names, and only then create the durable open task and
715
+ action runner. Planning failure retains the exact intake for bounded
716
+ scheduler recovery without publishing the promise.
717
+ - [x] Preserve true fulfilled conversation behavior: one independently
718
+ reviewed reply, one provider receipt, no action runner.
719
+ - [x] Add the exact OMNIUS 5712 -> 5713 -> 5727 topology and assert that the
720
+ Borneo promise is withheld, action planning runs, and the open task exists
721
+ before object work begins.
722
+ - [x] Pass focused quick-chat, working-indicator, steering, lifecycle,
723
+ inference-timeout, intake, and terminal-delivery suites plus CLI
724
+ typecheck and formatting.
725
+
726
+ Primary anchors:
727
+
728
+ - `packages/cli/src/tui/telegram-bridge.ts` — quick-chat semantic admission,
729
+ withheld-draft transfer, validated action planning, and finite inference TTL.
730
+ - `packages/cli/tests/telegram-quick-chat-contract.test.ts`
731
+ - `packages/cli/tests/telegram-working-indicator.test.ts`
732
+ - `packages/cli/tests/telegram-stream-timeout.test.ts`
733
+ - `packages/cli/tests/telegram-terminal-delivery.test.ts`
734
+
735
+ ### REQ-TDT-020 — same-response terminal binding and convergence isolation
736
+
737
+ - [x] Let a Telegram answer and its sole `task_complete` operation in the same
738
+ model response share one host-bound visible-response candidate; do not
739
+ require the model to duplicate a long answer inside tool arguments.
740
+ - [x] Bind that candidate only when run ID, task epoch, turn, objective scope,
741
+ and frontier fingerprint match and `visible_response` is the sole
742
+ remaining effect.
743
+ - [x] Reject prior-turn drafts, intermediate answers, stale objectives, and
744
+ responses containing any sibling operation.
745
+ - [x] When a visible candidate is followed by legitimate read-only refinement,
746
+ bind the exception to its exact run/task/response-turn identity, consume
747
+ it once, and fence any repeated operation unless a fresh candidate is
748
+ authored.
749
+ - [x] Keep `task_complete` admission feedback in the current run, but exclude
750
+ the generic control-tool failure family from persistent cross-objective
751
+ convergence state.
752
+ - [x] Add streaming/non-streaming positive controls plus stale-turn,
753
+ sibling-operation, repeated-read, and persistence-isolation regressions.
754
+
755
+ Primary anchors:
756
+
757
+ - `packages/orchestrator/src/agenticRunner.ts`
758
+ - `packages/orchestrator/src/focusSupervisor.ts`
759
+ - `packages/orchestrator/src/taskObjective.ts`
760
+ - `packages/orchestrator/tests/telegram-visible-response-authority.test.ts`
761
+ - `packages/orchestrator/tests/focusSupervisor.test.ts`
762
+ - `packages/orchestrator/tests/task-objective.test.ts`
763
+ - `packages/cli/tests/telegram-streamed-terminal-answer.test.ts`
764
+
765
+ ### Residual full-suite authority debt (not introduced by REQ-TDT-020)
766
+
767
+ - [ ] Replace loop-detector `redirect` steering with an internal,
768
+ task-epoch/TTL-bound repetition directive. It may reject only the exact
769
+ repeated action fingerprint and must not impersonate new user authority.
770
+ - [ ] Preserve schema-first rejection while invoking a tool's custom
771
+ `validateInput` once so typed domain diagnostics replace generic schema
772
+ errors without allowing invalid input.
773
+ - [ ] Bring legacy Telegram conversation-evidence fixtures onto the selected
774
+ capability contract instead of asking a `route:"chat"` turn with no
775
+ `actionToolNames` to execute deferred `shell`/`diagnostic` tools.
776
+ - [ ] Rerun the complete orchestrator and CLI suites and close only when their
777
+ previously red baseline is green without weakening production gates.
778
+
779
+ Evidence anchors:
780
+
781
+ - `packages/orchestrator/tests/evidenceBranch-runner.test.ts` — internal
782
+ loop-detector steering blocks a materially different ranged read.
783
+ - `packages/cli/tests/diagnostic-boundary.test.ts` — generic schema rejection
784
+ currently bypasses the tool-specific validator.
785
+ - `packages/cli/tests/telegram-conversation-evidence.test.ts` — fixture omits
786
+ the selected tool capability and is correctly denied by production dispatch.
787
+
677
788
  ## Cross-surface validation gates
678
789
 
679
790
  - [x] Orchestrator focused tests pass for visible-response evidence, completion
@@ -717,6 +828,8 @@ Primary anchors:
717
828
  | REQ-TDT-016 | event cadence + renewable runner lease | lifecycle leak + steering/finalization | delivered; redeploy pending |
718
829
  | REQ-TDT-017 | exact Telegram forum-topic delivery | final chunks + commands + artifacts | focused green; redeploy pending |
719
830
  | REQ-TDT-018 | delivery commit + full batch recovery | exact 23-file message-650 replay | focused green; deploy pending |
831
+ | REQ-TDT-019 | fulfillment review + plan-before-promise transfer | exact OMNIUS 5727 + fulfilled-chat control | delivered in `cdf81ffd` |
832
+ | REQ-TDT-020 | same-response completion + convergence isolation | message 651 terminal answer + stale/sibling controls | delivered in `1b451bc8` |
720
833
 
721
834
  ## Evidence log
722
835
 
@@ -1185,3 +1298,70 @@ delivery controls`). Both scoped commits were pushed to tracked branch
1185
1298
  - No live inference, Telegram send, publication, installation, or service
1186
1299
  restart was performed. Deployment and live Case Theory/OMNIUS acceptance
1187
1300
  remain open.
1301
+
1302
+ ### 2026-10-03 — live 1.0.800 quick-chat transfer and inference-lease repair
1303
+
1304
+ - OMNIUS message 5727 proved that social reply authority and task fulfillment
1305
+ were still conflated. The router correctly understood the direct reply to a
1306
+ prior bot commitment, but quick chat skipped independent fulfillment review,
1307
+ fabricated `fulfilled`, delivered another promise as message 5728, and
1308
+ consumed the intake without an action task.
1309
+ - Fast-path eligibility is now only a transport decision. Every candidate is
1310
+ independently classified as fulfilled or continue. A continuation candidate
1311
+ is never streamed or sent; it is converted to action, receives a validated
1312
+ input-bound tool/outcome plan, and reaches durable task creation before any
1313
+ object work begins. Invalid planning uses the bounded exact-intake recovery
1314
+ path without exposing the promise.
1315
+ - Case Theory message 651 was progressing rather than file-I/O stalled: 19 of
1316
+ 23 PDFs had successful native text extraction and the itemized frontier kept
1317
+ messages 639-642 plus visible response open. The remaining hard liveness gap
1318
+ was `requestTimeoutMs:0`: an admitted backend promise was exempt from the
1319
+ outer watchdog and had no deadline of its own.
1320
+ - Telegram action runners now use the existing configurable 300-second stream
1321
+ inactivity lease. Each response chunk renews it; unary/auxiliary calls are
1322
+ bounded by the same value; explicit stop remains immediate. This restores the
1323
+ REQ-TDT-016 invariant without imposing a blind whole-task timer.
1324
+ - Focused validation passed 230/230 across quick-chat, working-indicator,
1325
+ steering, intake, lifecycle, observability, inference-contract/timeout, and
1326
+ terminal-delivery suites. CLI typecheck and build passed; Prettier and
1327
+ `git diff --check` passed. Commit `cdf81ffd` was pushed to tracked branch
1328
+ `origin/main`. No live inference, Telegram send, publication, installation,
1329
+ or service restart was performed.
1330
+
1331
+ ### 2026-10-03 — message-651 terminal convergence repair
1332
+
1333
+ - The live Case Theory runner successfully extracted all 23 PDFs and authored
1334
+ the complete 23-row answer. Its frontier contained 26 evidence records and
1335
+ reached `deliver_due`; `effect:visible_response` was the sole open criterion.
1336
+ The answer and a summary-only `task_complete` occurred in the same model
1337
+ response, but the adapter required `user_reply` even though the tool schema
1338
+ made it optional. The answer was discarded and the run ended
1339
+ `incomplete_verification` with no delivery receipt.
1340
+ - The runner now host-binds same-response visible text to a sole
1341
+ `task_complete` operation. Admission requires exact run, task epoch, turn,
1342
+ objective scope, frontier fingerprint, and a sole remaining
1343
+ `visible_response` effect. It cannot reuse an earlier draft or bind when any
1344
+ sibling operation remains.
1345
+ - A following read-only refinement can invalidate an exact buffered candidate
1346
+ through a one-shot run/task/response-turn lease. The lease is consumed on
1347
+ admission; a second read is fenced unless a new candidate is authored. This
1348
+ preserves bounded refinement without reopening the Case Theory runaway.
1349
+ - `task_complete` admission failures remain available to same-run focus
1350
+ guidance but no longer enter the persistent convergence breaker. This
1351
+ prevents the observed generic `1:task_complete:no-target` family from
1352
+ carrying 26 unrelated rounds into a new objective.
1353
+ - Focused validation passed 219/219: 72 orchestrator objective/authority/focus
1354
+ regressions and 147 CLI terminal-delivery, streamed-answer, lifecycle, and
1355
+ agent-observability regressions. Orchestrator and CLI typechecks/builds plus
1356
+ `git diff --check` passed. Source commit `1b451bc8` was pushed to tracked
1357
+ branch `origin/main`.
1358
+ - The complete CLI suite reached 3,136 passing and 19 failing tests. The
1359
+ failures reproduce outside this change and include stale capability fixtures,
1360
+ source-shape assertions, and older validation/authority-domain regressions.
1361
+ The complete orchestrator suite likewise exposed pre-existing deterministic
1362
+ reds and one long-lived worker, so it was stopped after the gate was already
1363
+ red. Those failures remain explicitly unchecked above; they were not hidden
1364
+ or converted into weaker assertions.
1365
+ - Publication, installation, restart, and a fresh provider delivery receipt
1366
+ remain open. The observed Case Theory 651 and OMNIUS 5727 runs predate this
1367
+ source deployment and are not acceptance evidence for the repair.
@@ -0,0 +1,69 @@
1
+ # WO-58 — Agent-scoped footer observability
2
+
3
+ Status: source delivered in `8a81eab6`; deployment acceptance pending
4
+
5
+ ## Problem
6
+
7
+ The TUI's agent selector changes the visible scrollback, but the stage block,
8
+ context gauge, token/model/SNR/cost pages, uptime, and activity signal continue
9
+ to describe the base session. Telegram child events also lose their view ID at
10
+ the bridge callback boundary, and completed views are immediately discarded.
11
+ This makes an active or stalled child look indistinguishable from the base
12
+ agent and removes the evidence needed to inspect a just-finished run.
13
+
14
+ ## Invariants
15
+
16
+ - Selecting an agent selects one coherent observability scope: scrollback,
17
+ stage, context, token metrics, model/backend, SNR, cost, runtime, and status.
18
+ - Unknown child metrics render as `--`; base-session values must never leak into
19
+ a child view.
20
+ - The base agent remains a selectable scope.
21
+ - Agent indicators use terminal-cell widths, remain inside the footer, and do
22
+ not overlap other footer content on narrow terminals.
23
+ - Completed views remain inspectable for a bounded history and are pruned after
24
+ a 30-minute TTL or when the 12-view cap is exceeded.
25
+ - Structured telemetry is attributed by immutable view ID, never inferred from
26
+ display text or the currently selected view.
27
+
28
+ ## Implementation checklist
29
+
30
+ - [x] Define a canonical per-view telemetry snapshot beside each agent view.
31
+ - [x] Preserve the existing global metrics as the explicit `main` scope.
32
+ - [x] Ingest structured token, context, tool, stream, and status events into the
33
+ matching view snapshot.
34
+ - [x] Forward Telegram runner events across the bridge with their view ID.
35
+ - [x] Drive the footer stage block and every metrics page from the selected
36
+ view.
37
+ - [x] Render honest `--` values when a child backend does not expose a metric.
38
+ - [x] Add stable, status-colored agent dots adjacent to the metrics page
39
+ indicator, including the base agent.
40
+ - [x] Make each visible dot a precise mouse hit target that selects its view.
41
+ - [x] Show the selected agent name beside the `[n/6]` page indicator.
42
+ - [x] Bound dot overflow with `+N`, cap the selected label, and verify narrow
43
+ terminal layout does not overlap.
44
+ - [x] Retain and prune a bounded set of completed/failed/stopped view snapshots.
45
+ - [x] Keep Ctrl-Left/Ctrl-Right and the agents command center synchronized with
46
+ the same selected view.
47
+
48
+ ## Validation checklist
49
+
50
+ - [x] Unit-test per-agent metric isolation and unknown-value rendering.
51
+ - [x] Unit-test structured event attribution and Telegram callback forwarding.
52
+ - [x] Unit-test dot rendering, status changes, click selection, overflow, and
53
+ narrow-terminal width.
54
+ - [x] Unit-test completed-view retention and bounded pruning.
55
+ - [x] Run affected TUI and Telegram test suites.
56
+ - [x] Run CLI typecheck and build.
57
+ - [x] Run `git diff --check`.
58
+ - [x] Commit the scoped repair, fetch the tracked branch, and push it.
59
+ - [ ] Validate dot selection and per-agent footer pages in the published TUI.
60
+
61
+ ## Delivery evidence
62
+
63
+ - Commit: `8a81eab6` (`feat(tui): scope footer telemetry by agent`)
64
+ - Remote branch: `origin/main`
65
+ - Tests: 108/108 focused TUI/Telegram observability tests; 147/147 when
66
+ combined with Telegram terminal and streamed-answer regressions; CLI
67
+ typecheck/build and `git diff --check` passed.
68
+ - Live acceptance: pending publication/installation; the currently running
69
+ `telegram_test` process predates this build.
@@ -0,0 +1,112 @@
1
+ # WO-59: Telegram restart edit crash and terminal-intake monotonicity
2
+
3
+ **Status:** COMPLETE — implemented, verified, and pushed in `9fadef51`
4
+ **Priority:** P0
5
+ **Incident:** October 3, 2026, `telegram_test` TUI exits immediately while
6
+ loading the OMNIUS Telegram session
7
+ **Owner:** Omnius Telegram durable-intake runtime
8
+ **Depends on:** WO-57
9
+ **Completion rule:** Mark a checkbox complete only when its code anchor and
10
+ deterministic evidence exist. Do not delete or rewrite live Telegram state to
11
+ make startup appear healthy.
12
+
13
+ ## Objective
14
+
15
+ Make edited Telegram messages retain one logical input identity across process
16
+ restart. A later `edited_message` envelope for a terminal input must be stored
17
+ as evidence and transport-terminalized without reopening cognition, scheduling
18
+ work, or allowing a stale nonterminal transition to terminate the TUI.
19
+
20
+ ## Live failure anchors
21
+
22
+ - [x] Confirm the foreground TUI PID `2136726` exited while the independently
23
+ supervised `omnius-daemon.service` stayed healthy.
24
+ - [x] Correlate the exact exit at `2026-10-03T07:11:40.465Z` with
25
+ `TelegramUpdateConflictError: Telegram input
26
+ telegram:chat:-1003888256865:5719:5726 is already terminal as consumed`
27
+ in `~/.omnius/crash.log`.
28
+ - [x] Confirm the global `unhandledRejection` boundary converted the escaped
29
+ background lifecycle rejection into `process.exit(1)`.
30
+ - [x] Confirm conversation temp files owned by PID `2136726` were truncated
31
+ mid-write at the same timestamp; they are consequences of immediate
32
+ process exit, not malformed canonical conversation input.
33
+ - [x] Confirm durable spool identity: original update `666869361` and edited
34
+ update `666869375` bind to the same immutable input, message `5726`, and
35
+ topic `5719`; the logical intake was already `consumed`.
36
+ - [x] Locate the restart gap: the early edited-message gate checks only the
37
+ process-local `telegramIntakeRecords` map, so an edit arriving after
38
+ restart bypasses consolidation, rehydrates a terminal durable intake,
39
+ and attempts an illegal `consumed -> deferred` transition.
40
+
41
+ ## Repair checklist
42
+
43
+ ### REQ-TERC-001 — restart-safe edit identity
44
+
45
+ - [x] Consult the durable intake store when an edited message is absent from
46
+ process-local memory.
47
+ - [x] Rehydrate and consolidate the persisted logical intake without starting
48
+ a second cognition/reply run.
49
+ - [x] Keep the edited raw envelope transport-terminal and preserve the
50
+ original logical intake owner.
51
+
52
+ Primary anchors:
53
+
54
+ - `packages/cli/src/tui/telegram-bridge.ts` — edited-message ingress gate and
55
+ durable intake registration.
56
+ - `packages/cli/tests/telegram-durable-intake-integration.test.ts`
57
+
58
+ ### REQ-TERC-002 — terminal intake monotonicity
59
+
60
+ - [x] Treat an exact-binding terminal durable state as authoritative when a
61
+ stale asynchronous nonterminal transition arrives.
62
+ - [x] Do not mutate the process-local record before the durable transition is
63
+ accepted.
64
+ - [x] Continue throwing immutable identity/binding conflicts; do not weaken
65
+ the spool contract or global crash handler.
66
+ - [x] Journal the rejected stale transition as reconciliation evidence.
67
+
68
+ Primary anchors:
69
+
70
+ - `packages/cli/src/tui/telegram-bridge.ts` — `transitionTelegramIntake()` and
71
+ `settleTelegramUpdateFromIntake()`.
72
+ - `packages/cli/tests/telegram-durable-intake-integration.test.ts`
73
+
74
+ ### REQ-TERC-003 — validation and delivery
75
+
76
+ - [x] Regression: a terminal input followed by an edited envelope after
77
+ restart does not call `scheduleTelegramSessionWork()` and does not throw.
78
+ - [x] Regression: a stale nonterminal transition cannot regress a terminal
79
+ durable intake or its in-memory projection.
80
+ - [x] Run focused Telegram durable-intake and update-spool tests.
81
+ - [x] Run CLI typecheck and build.
82
+ - [x] Replay the exact live `telegram_test` WAL-backed spool snapshot and
83
+ edited envelope in an offline temporary project without model inference;
84
+ confirm terminal state, original owner, and zero scheduler calls.
85
+ - [x] Commit only WO-59-owned files, fetch the tracked branch, and push the
86
+ verified repair.
87
+
88
+ ## Non-goals and safety constraints
89
+
90
+ - Do not delete or rewrite the 8.9 GB `.omnius` state tree.
91
+ - Do not discard the 3.3 GB deferred-memory spool; its TTL/rotation concern is
92
+ separate from this exact crash fingerprint.
93
+ - Do not catch every unhandled rejection globally or convert durable identity
94
+ conflicts into generic warnings.
95
+ - Do not send live inference while validating startup.
96
+
97
+ ## Evidence log
98
+
99
+ - Runtime crash log: `/home/roko/.omnius/crash.log`
100
+ - Durable spool:
101
+ `/home/roko/Documents/Projects/Adjacent/telegram_test/.omnius/telegram-runner-state/bot-8929483195.updates.sqlite`
102
+ - Consequence temp files:
103
+ `/home/roko/Documents/Projects/Adjacent/telegram_test/.omnius/telegram-conversations/*.2136726.*.tmp`
104
+ and
105
+ `/home/roko/Documents/Projects/Adjacent/telegram_test/.omnius/telegram-runner-state/*.2136726.*.tmp`
106
+ - Focused validation: 7 test files, 162 tests passed; CLI typecheck and build
107
+ passed.
108
+ - Live-state offline replay: input
109
+ `telegram:chat:-1003888256865:5719:5726`, memory and durable lifecycle
110
+ `consumed`, owner update `666869361`, scheduler calls `0`.
111
+ - Delivery: implementation commit `9fadef51` pushed to `origin/main` after a
112
+ clean tracked-branch fetch (`origin/main...HEAD = 0/0`).
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.800",
3
+ "version": "1.0.801",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.800",
9
+ "version": "1.0.801",
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.800",
3
+ "version": "1.0.801",
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",