omnius 1.0.763 → 1.0.765
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 +2 -2
- package/dist/library.js +10 -0
- package/docs/DISCOVERY.json +96 -0
- package/docs/DISCOVERY.md +2 -0
- package/docs/work-orders/runtime-health-remediation/TRACKER.md +4 -0
- package/docs/work-orders/runtime-health-remediation/WO-54-case-theory-router-deferral-recovery.md +291 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
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:
|
|
4
|
-
sha256:
|
|
3
|
+
size: 38754141 bytes
|
|
4
|
+
sha256: 8f6cc23abacc45c47703361d743118fe124f196c880cd3f05c49f8b8320609a9
|
package/dist/library.js
CHANGED
|
@@ -51894,6 +51894,15 @@ var init_browser_action = __esm({
|
|
|
51894
51894
|
}
|
|
51895
51895
|
});
|
|
51896
51896
|
|
|
51897
|
+
// packages/execution/dist/tools/email-verification.js
|
|
51898
|
+
var init_email_verification = __esm({
|
|
51899
|
+
"packages/execution/dist/tools/email-verification.js"() {
|
|
51900
|
+
"use strict";
|
|
51901
|
+
init_network_egress_policy();
|
|
51902
|
+
init_playwright_browser();
|
|
51903
|
+
}
|
|
51904
|
+
});
|
|
51905
|
+
|
|
51897
51906
|
// packages/execution/dist/tools/autoresearch.js
|
|
51898
51907
|
var init_autoresearch = __esm({
|
|
51899
51908
|
"packages/execution/dist/tools/autoresearch.js"() {
|
|
@@ -297242,6 +297251,7 @@ var init_dist3 = __esm({
|
|
|
297242
297251
|
init_ocr_image_advanced();
|
|
297243
297252
|
init_browser_action();
|
|
297244
297253
|
init_playwright_browser();
|
|
297254
|
+
init_email_verification();
|
|
297245
297255
|
init_autoresearch();
|
|
297246
297256
|
init_scheduler();
|
|
297247
297257
|
init_reminder();
|
package/docs/DISCOVERY.json
CHANGED
|
@@ -35711,6 +35711,46 @@
|
|
|
35711
35711
|
}
|
|
35712
35712
|
]
|
|
35713
35713
|
},
|
|
35714
|
+
{
|
|
35715
|
+
"id": "guide.work-orders-runtime-health-remediation-wo-54-case-theory-router-deferral-recovery-uppercase",
|
|
35716
|
+
"kind": "guide",
|
|
35717
|
+
"title": "WO-54: Case Theory router deferral recovery",
|
|
35718
|
+
"summary": "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",
|
|
35719
|
+
"keywords": [
|
|
35720
|
+
"work",
|
|
35721
|
+
"orders",
|
|
35722
|
+
"runtime",
|
|
35723
|
+
"health",
|
|
35724
|
+
"remediation",
|
|
35725
|
+
"WO",
|
|
35726
|
+
"54",
|
|
35727
|
+
"case",
|
|
35728
|
+
"theory",
|
|
35729
|
+
"router",
|
|
35730
|
+
"deferral",
|
|
35731
|
+
"recovery",
|
|
35732
|
+
"md"
|
|
35733
|
+
],
|
|
35734
|
+
"maturity": "internal",
|
|
35735
|
+
"audiences": [
|
|
35736
|
+
"maintainer",
|
|
35737
|
+
"large-context-agent"
|
|
35738
|
+
],
|
|
35739
|
+
"layer": "documentation",
|
|
35740
|
+
"interfaces": [
|
|
35741
|
+
{
|
|
35742
|
+
"type": "file",
|
|
35743
|
+
"target": "docs/work-orders/runtime-health-remediation/WO-54-case-theory-router-deferral-recovery.md"
|
|
35744
|
+
}
|
|
35745
|
+
],
|
|
35746
|
+
"references": [
|
|
35747
|
+
{
|
|
35748
|
+
"type": "documentation",
|
|
35749
|
+
"target": "docs/work-orders/runtime-health-remediation/WO-54-case-theory-router-deferral-recovery.md",
|
|
35750
|
+
"relation": "canonical-artifact"
|
|
35751
|
+
}
|
|
35752
|
+
]
|
|
35753
|
+
},
|
|
35714
35754
|
{
|
|
35715
35755
|
"id": "guide.work-orders-telegram-dmn-wo-22-dmn-outreach-and-learning-uppercase",
|
|
35716
35756
|
"kind": "guide",
|
|
@@ -41528,6 +41568,62 @@
|
|
|
41528
41568
|
}
|
|
41529
41569
|
]
|
|
41530
41570
|
},
|
|
41571
|
+
{
|
|
41572
|
+
"id": "tool.email-verification",
|
|
41573
|
+
"kind": "tool",
|
|
41574
|
+
"title": "Email Verification",
|
|
41575
|
+
"summary": "email_verification is a directly callable Omnius tool.",
|
|
41576
|
+
"aliases": [
|
|
41577
|
+
"email_verification"
|
|
41578
|
+
],
|
|
41579
|
+
"keywords": [
|
|
41580
|
+
"tool",
|
|
41581
|
+
"email",
|
|
41582
|
+
"verification"
|
|
41583
|
+
],
|
|
41584
|
+
"maturity": "stable",
|
|
41585
|
+
"layer": "execution",
|
|
41586
|
+
"audiences": [
|
|
41587
|
+
"coding-agent",
|
|
41588
|
+
"integrator",
|
|
41589
|
+
"service-agent"
|
|
41590
|
+
],
|
|
41591
|
+
"use_when": [
|
|
41592
|
+
"The caller needs this isolated operation and live metadata confirms direct-call availability"
|
|
41593
|
+
],
|
|
41594
|
+
"avoid_when": [
|
|
41595
|
+
"The live registry reports the tool unavailable or the caller lacks its required scope"
|
|
41596
|
+
],
|
|
41597
|
+
"interfaces": [
|
|
41598
|
+
{
|
|
41599
|
+
"type": "rest-schema",
|
|
41600
|
+
"target": "/v1/tools/email_verification"
|
|
41601
|
+
},
|
|
41602
|
+
{
|
|
41603
|
+
"type": "rest-call",
|
|
41604
|
+
"target": "/v1/tools/email_verification/call"
|
|
41605
|
+
}
|
|
41606
|
+
],
|
|
41607
|
+
"references": [
|
|
41608
|
+
{
|
|
41609
|
+
"type": "source",
|
|
41610
|
+
"target": "packages/execution/src/tools/email-verification.ts",
|
|
41611
|
+
"relation": "implementation"
|
|
41612
|
+
}
|
|
41613
|
+
],
|
|
41614
|
+
"direct_callable": true,
|
|
41615
|
+
"live_metadata": "GET /v1/tools/email_verification",
|
|
41616
|
+
"source_of_truth": [
|
|
41617
|
+
"packages/execution/src/tools/email-verification.ts",
|
|
41618
|
+
"GET /v1/tools/email_verification"
|
|
41619
|
+
],
|
|
41620
|
+
"verification": [
|
|
41621
|
+
{
|
|
41622
|
+
"check": "Inspect GET /v1/tools/email_verification before use",
|
|
41623
|
+
"expected": "Schema, security, exposure, and availability match the intended invocation"
|
|
41624
|
+
}
|
|
41625
|
+
]
|
|
41626
|
+
},
|
|
41531
41627
|
{
|
|
41532
41628
|
"id": "tool.embedding-store",
|
|
41533
41629
|
"kind": "tool",
|
package/docs/DISCOVERY.md
CHANGED
|
@@ -605,6 +605,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
605
605
|
| `guide.work-orders-runtime-health-remediation-wo-51-large-telegram-attachments-uppercase` | WO-51: Receive and unpack large Telegram attachments | Status: source repair complete and verified. Publication and Local Bot API live acceptance remain with the operator. |
|
|
606
606
|
| `guide.work-orders-runtime-health-remediation-wo-52-steering-projection-preservation-uppercase` | WO-52: Preserve required steering instructions in the actual model request | Status: source repair complete; verified and ready for publication. Live acceptance follows the user's publication. |
|
|
607
607
|
| `guide.work-orders-runtime-health-remediation-wo-53-deferred-reflection-churn-uppercase` | WO-53: Stop duplicate deferred reflection writes | Status: scoped source repair verified; publication remains with the operator. Issue: https://github.com/robit-man/open-agents/issues/3 |
|
|
608
|
+
| `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 |
|
|
608
609
|
| `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. |
|
|
609
610
|
| `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. |
|
|
610
611
|
| `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 |
|
|
@@ -766,6 +767,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
766
767
|
| `tool.desktop-describe` | Desktop Describe | desktop_describe is a directly callable Omnius tool. |
|
|
767
768
|
| `tool.diagnostic` | Diagnostic | diagnostic is a directly callable Omnius tool. |
|
|
768
769
|
| `tool.document` | Document | document is a directly callable Omnius tool. |
|
|
770
|
+
| `tool.email-verification` | Email Verification | email_verification is a directly callable Omnius tool. |
|
|
769
771
|
| `tool.embedding-store` | Embedding Store | embedding_store is a directly callable Omnius tool. |
|
|
770
772
|
| `tool.enter-worktree` | Enter Worktree | enter_worktree is a directly callable Omnius tool. |
|
|
771
773
|
| `tool.exit-worktree` | Exit Worktree | exit_worktree is a directly callable Omnius tool. |
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
**Checked-item rule:** code, focused tests, and named evidence must all exist
|
|
5
5
|
**Last reconciled:** 2026-09-05
|
|
6
6
|
|
|
7
|
+
## September 26 Case Theory router deferral recovery
|
|
8
|
+
|
|
9
|
+
- [x] [WO-54: Case Theory router deferral recovery](WO-54-case-theory-router-deferral-recovery.md): exact task-identity retirement, sequential mixed-domain repair, one scheduler-owned recovery with continuous typing and truthful exhaustion, plus canonical receipt-backed URLs with inference review and final fail-closed withholding. Implemented in `d6a6cb6e`; 251 focused Telegram tests and CLI build passed.
|
|
10
|
+
|
|
7
11
|
## September 5 runtime 1.0.701 rapid churn repair
|
|
8
12
|
|
|
9
13
|
- [x] [WO-53: deferred reflection churn](WO-53-deferred-reflection-churn.md): persistent scoped revision receipts prevent repeated unchanged reflection appends; seven regressions and workspace build passed. [Issue #3](https://github.com/robit-man/open-agents/issues/3) retains the separate context-recovery investigation and corrected budget findings. Existing backlog and live runtime are unchanged.
|
package/docs/work-orders/runtime-health-remediation/WO-54-case-theory-router-deferral-recovery.md
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# WO-54: Case Theory router deferral recovery
|
|
2
|
+
|
|
3
|
+
**Status:** complete
|
|
4
|
+
**Priority:** P0
|
|
5
|
+
**Incident:** September 26, 2026, Case Theory messages 455–456
|
|
6
|
+
**Runtime observed:** globally installed Omnius 1.0.764
|
|
7
|
+
**Owner:** current implementation session
|
|
8
|
+
|
|
9
|
+
## Objective
|
|
10
|
+
|
|
11
|
+
Make an inference-authorized Telegram request survive typed-router repair without
|
|
12
|
+
leaking completed task state, silently terminating, or losing its working
|
|
13
|
+
indicator. Preserve the existing rule that the model—not keywords or a host
|
|
14
|
+
claim gate—decides whether a message warrants a reply and what work it needs.
|
|
15
|
+
|
|
16
|
+
Also make outbound Telegram URLs evidence-backed and cleanly rendered. A URL
|
|
17
|
+
may reach a visible Telegram message only after a successful retrieval receipt
|
|
18
|
+
establishes the final resolved target, followed by an inference review of
|
|
19
|
+
whether that verified source actually supports the surrounding answer. This is
|
|
20
|
+
a transport/source-evidence boundary, not a lexical factual-truth classifier.
|
|
21
|
+
|
|
22
|
+
## Production evidence
|
|
23
|
+
|
|
24
|
+
The Case Theory bot received and bundled:
|
|
25
|
+
|
|
26
|
+
- message 455: `sure dig deeper`
|
|
27
|
+
- message 456, replying to bot message 454: a request for deeper analysis and
|
|
28
|
+
suggestions about focus, initial construction, and later scaling
|
|
29
|
+
|
|
30
|
+
The intake ledger records dispatch at `2026-09-27T02:03:15.566Z` and terminal
|
|
31
|
+
deferral at `2026-09-27T02:04:25.423Z`. The Ollama broker completed three
|
|
32
|
+
`POST /api/chat` calls with HTTP 200 during that interval. The bot health file
|
|
33
|
+
remained in `polling` with zero consecutive poll failures. This was therefore
|
|
34
|
+
not a dead bot, an unadmitted queue item, or a GPU wait.
|
|
35
|
+
|
|
36
|
+
Durable conversation state retained this obsolete task after reply 454 had
|
|
37
|
+
already delivered its requested links and ARR:
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
taskId: tgtask-1a276c4b0e77fb77d696
|
|
41
|
+
inputId: telegram:chat:-1003960149435:0:450
|
|
42
|
+
goalText: get me links to each, and ARR for each
|
|
43
|
+
state: open
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Reply 454 also exposed the current unsafe URL fallback in visible output, for
|
|
47
|
+
example `—relativity.com (unverified URL: https://www.relativity.com/)`. The
|
|
48
|
+
fallback both admitted an unverified URL and mangled the intended Markdown/
|
|
49
|
+
Telegram presentation. Similar entries were emitted for Reveal and Everlaw.
|
|
50
|
+
|
|
51
|
+
The production intake and conversation evidence lives outside this repository
|
|
52
|
+
under the `telegram_test/.omnius` runtime. Do not copy private transcripts into
|
|
53
|
+
fixtures; use sanitized deterministic reproductions.
|
|
54
|
+
|
|
55
|
+
## Full root-cause chain
|
|
56
|
+
|
|
57
|
+
1. Message 450 created an open action task.
|
|
58
|
+
2. The retry at message 453 was admitted through the quick-chat path and reply
|
|
59
|
+
454 visibly fulfilled the old request.
|
|
60
|
+
3. The successful quick-chat return path consumed intake records but did not
|
|
61
|
+
retire the model-cited open task. The action-task delivery path does perform
|
|
62
|
+
retirement, so lifecycle behavior differs by delivery path.
|
|
63
|
+
4. Messages 455–456 therefore received stale `active-task:*` evidence and an
|
|
64
|
+
obsolete active scope anchored to message 450.
|
|
65
|
+
5. The initial router and its repairs recognized the new deeper-analysis turn,
|
|
66
|
+
but their typed fields did not converge on one accepted contract. At least
|
|
67
|
+
one repair labeled inline research as external `delivery`, contrary to the
|
|
68
|
+
action-plan prompt's read-only/observation semantics.
|
|
69
|
+
6. Domain repair is brittle: repair is attempted only when every current issue
|
|
70
|
+
belongs to one domain. A mixed attention/action failure cannot be repaired
|
|
71
|
+
attention-first and then action-plan-second.
|
|
72
|
+
7. After action-plan reconciliation, the final validation result is reduced to
|
|
73
|
+
`.decision`; final issue codes and the rejected repaired fragment are not
|
|
74
|
+
retained in diagnostics. The exact last rejection is consequently lost.
|
|
75
|
+
8. Foreground router recovery then marks the intakes `deferred`, stops the
|
|
76
|
+
typing lease, and returns without putting the exact bounded work snapshot
|
|
77
|
+
back into the scheduler. `deferred` is therefore terminal in practice even
|
|
78
|
+
though its wording claims the unresolved task was retained.
|
|
79
|
+
9. The user sees a planning card stop, no typing indication, and no reply.
|
|
80
|
+
10. Separately, final Telegram delivery currently rewrites URLs lacking fetch
|
|
81
|
+
receipts into visible `unverified URL` annotations. This treats failed
|
|
82
|
+
provenance validation as presentational text instead of returning the
|
|
83
|
+
candidate to model self-review, and the rewrite can corrupt Markdown link
|
|
84
|
+
structure before Telegram HTML conversion.
|
|
85
|
+
11. The rewrite happened before `convertMarkdownToTelegramHTML`: an unverified
|
|
86
|
+
Markdown destination was replaced with a visible inline-code URL, then the
|
|
87
|
+
Telegram renderer faithfully emitted the mangled annotation. Domain-shaped
|
|
88
|
+
link labels such as `relativity.com` could remain auto-linkable even when
|
|
89
|
+
the `https://` destination itself was demoted.
|
|
90
|
+
12. Successful `web_fetch` calls already emitted signed-shape transport
|
|
91
|
+
receipts, but the terminal metacognitive reviewer did not receive a
|
|
92
|
+
candidate-specific URL admission receipt. It could therefore judge prose
|
|
93
|
+
completion without explicitly reconciling each cited URL against the exact
|
|
94
|
+
fetched final target and source observations.
|
|
95
|
+
13. Quick chat has no retrieval tools, yet its independent semantic reviewer
|
|
96
|
+
was not told that a source-bearing answer must continue into the action
|
|
97
|
+
path. Its final boundary could only mangle an unfetched link, not obtain and
|
|
98
|
+
assess the evidence needed to support it.
|
|
99
|
+
14. The initial repair covered the normal action, quick-chat, and admin-agent
|
|
100
|
+
completion boundaries, but two secondary model-authored delivery paths
|
|
101
|
+
remained outside that boundary: autonomous reflection follow-ups and the
|
|
102
|
+
model-callable Telegram `send_message`/message-edit actions.
|
|
103
|
+
15. Reflection follow-ups run without tools, so they cannot obtain a current-run
|
|
104
|
+
WebFetch receipt. Their discretion prompt did not make that limitation
|
|
105
|
+
explicit and their selected text was sent directly after room/evidence
|
|
106
|
+
validation.
|
|
107
|
+
16. Direct Telegram send/edit actions are effects performed inside an active
|
|
108
|
+
tool loop, before the terminal metacognitive review. Their text and media
|
|
109
|
+
captions therefore cannot honestly claim the final review that normal
|
|
110
|
+
answer delivery receives, even when another tool fetched a URL earlier.
|
|
111
|
+
17. A complete invariant must consequently cover every model-authored text
|
|
112
|
+
effect, not merely the normal final-answer function: no-tools inference must
|
|
113
|
+
decline link-bearing outreach, and pre-review direct-effect tools must reject
|
|
114
|
+
link-bearing text/captions and return a recoverable tool error directing the
|
|
115
|
+
model to the normal receipt-backed reviewed delivery path.
|
|
116
|
+
|
|
117
|
+
## Required invariants
|
|
118
|
+
|
|
119
|
+
- No deterministic keyword/direct-mention/claim gate may manufacture reply
|
|
120
|
+
authority or semantic task completion.
|
|
121
|
+
- Task retirement must be based on a fresh typed model review plus exact task
|
|
122
|
+
identity evidence, never merely on text similarity or the presence of a
|
|
123
|
+
visible message.
|
|
124
|
+
- Repairs may preserve independently valid model-authored fields, but must not
|
|
125
|
+
silently rewrite semantic decisions.
|
|
126
|
+
- Every queued retry must be bounded, idempotent per exact intake, and use the
|
|
127
|
+
normal session scheduler; no detached inference loops.
|
|
128
|
+
- A deferred foreground turn must either have scheduled continuation evidence
|
|
129
|
+
or expose a truthful terminal/blocked state. It must not look actively
|
|
130
|
+
retained while having no path to run again.
|
|
131
|
+
- The Telegram typing lease must remain active across a scheduled recovery and
|
|
132
|
+
stop only on delivery, a genuine no-reply decision, cancellation, supersession,
|
|
133
|
+
or exhausted bounded recovery.
|
|
134
|
+
- No live inference is required for repository acceptance. Tests use injected
|
|
135
|
+
model responses and mocked Telegram transport.
|
|
136
|
+
- Every assistant-authored visible URL must bind to a successful retrieval
|
|
137
|
+
receipt for its normalized final URL. Redirects must bind the emitted link to
|
|
138
|
+
the verified final target, not merely the requested target.
|
|
139
|
+
- A verified URL receipt establishes reachability and source identity only. A
|
|
140
|
+
fresh inference review must still judge whether the source supports the
|
|
141
|
+
adjacent answer claim; the host must not infer relevance from domains,
|
|
142
|
+
keywords, or URL shapes.
|
|
143
|
+
- Failed/dead/invalid links must return to bounded self-review for revision.
|
|
144
|
+
They must never be surfaced as an `unverified URL` annotation, malformed
|
|
145
|
+
pseudo-link, or invented replacement.
|
|
146
|
+
|
|
147
|
+
## Implementation plan and durable checklist
|
|
148
|
+
|
|
149
|
+
- [x] Add a sanitized regression in which a model-cited open task is fulfilled
|
|
150
|
+
by a reviewed quick-chat reply; assert the exact task is retired.
|
|
151
|
+
- [x] Add a control proving an unrelated open task is not cleared merely
|
|
152
|
+
because some quick-chat reply was delivered.
|
|
153
|
+
- [x] Unify task retirement behind an exact task-identity helper used by both
|
|
154
|
+
quick-chat and action delivery paths.
|
|
155
|
+
- [x] Partition mixed validation issues and reconcile attention and action-plan
|
|
156
|
+
domains sequentially while keeping all semantic fields model-authored.
|
|
157
|
+
- [x] Revalidate after every repair and retain final repair-stage issue codes
|
|
158
|
+
plus bounded output previews in operator diagnostics.
|
|
159
|
+
- [x] Add mixed-domain, successful sequential repair, and still-invalid final
|
|
160
|
+
repair regression tests.
|
|
161
|
+
- [x] Add a bounded scheduler-owned router recovery attempt to the queued work
|
|
162
|
+
record. Preserve exact intake identity and causal bundle; do not create a
|
|
163
|
+
new visible activity card for each attempt.
|
|
164
|
+
- [x] Keep the typing lease alive while that recovery remains scheduled.
|
|
165
|
+
- [x] On recovery exhaustion, persist a truthful terminal diagnostic including
|
|
166
|
+
the final validation issues and stop typing exactly once.
|
|
167
|
+
- [x] Add retry-success, retry-exhaustion, no-duplicate-reply, no-runaway-card,
|
|
168
|
+
cancellation, and restart/persisted-intake coverage.
|
|
169
|
+
- [x] Trace `enforceTelegramReplyLinkEvidence` and Markdown-to-Telegram HTML
|
|
170
|
+
ordering against the exact message-454 corruption; record the complete
|
|
171
|
+
receipt/rewrite/review root cause here.
|
|
172
|
+
- [x] Replace visible `unverified URL` rewriting with a bounded self-review
|
|
173
|
+
contract supplied with exact successful/failed URL receipts. Require the
|
|
174
|
+
model to retain only supported verified links or revise the prose without
|
|
175
|
+
a URL; never manufacture a replacement link.
|
|
176
|
+
- [x] Enforce the final send boundary so an inference-review failure cannot
|
|
177
|
+
leak an unverified URL. Preserve useful prose while withholding the
|
|
178
|
+
unsupported link and retain a truthful diagnostic receipt.
|
|
179
|
+
- [x] Add regressions for live 2xx receipts, redirects to a canonical final
|
|
180
|
+
URL, 404/5xx/network failure, a syntactically invalid URL, Markdown links,
|
|
181
|
+
bare URLs, punctuation adjacency, duplicate URLs, and Telegram HTML
|
|
182
|
+
escaping/rendering. Assert zero visible `unverified URL` annotations.
|
|
183
|
+
- [x] Verify that URL self-review is bounded, cannot recursively trigger its
|
|
184
|
+
own link review, and cannot duplicate a visible Telegram reply.
|
|
185
|
+
- [x] Run focused Telegram routing, intake, task lifecycle, working-indicator,
|
|
186
|
+
verified-link, Markdown rendering, and delivery suites.
|
|
187
|
+
- [x] Run CLI typecheck/build and the complete CLI test suite if focused tests
|
|
188
|
+
pass.
|
|
189
|
+
- [x] Independently review the resulting diff for forced-reply behavior,
|
|
190
|
+
unbounded retries, stale scope leakage, and typing ownership regressions.
|
|
191
|
+
- [x] Update this work order with exact verification evidence, commit hash, and
|
|
192
|
+
delivery state; then mark the tracker item complete.
|
|
193
|
+
|
|
194
|
+
### Post-closeout all-path URL audit
|
|
195
|
+
|
|
196
|
+
- [x] State in the reflection discretion prompt that the no-tools path has no
|
|
197
|
+
URL receipts and must choose silence when a useful follow-up requires a
|
|
198
|
+
destination.
|
|
199
|
+
- [x] Fail closed on the complete reflection message when its typed decision
|
|
200
|
+
nevertheless contains an external URL/domain; do not strip a destination
|
|
201
|
+
and send semantically damaged prose.
|
|
202
|
+
- [x] Reject link-bearing `send_message`, `edit_message_text`, and
|
|
203
|
+
`edit_message_caption` tool effects before dry-run or Telegram API I/O,
|
|
204
|
+
because those effects occur before terminal source-support review.
|
|
205
|
+
- [x] Apply the same rejection to captions supplied through model-callable
|
|
206
|
+
Telegram file/media delivery tools.
|
|
207
|
+
- [x] Return a recoverable tool error that tells the agent to fetch, inspect,
|
|
208
|
+
and allow the normal terminal reviewer/final-response path to deliver the
|
|
209
|
+
canonical receipt-bound URL; do not invent or silently rewrite a link.
|
|
210
|
+
- [x] Add regressions proving no Telegram API call occurs for bypass attempts,
|
|
211
|
+
ordinary link-free tool effects remain available, and a reflection
|
|
212
|
+
decision cannot leak or mangle an unverified URL.
|
|
213
|
+
- [x] Re-run the focused URL, reflection, Telegram-tool, and build gates; commit
|
|
214
|
+
and push the scoped follow-up without touching publish-version files.
|
|
215
|
+
|
|
216
|
+
## Implemented behavior
|
|
217
|
+
|
|
218
|
+
- A fulfilled typed review now retires a prior open task only when the admitted
|
|
219
|
+
decision cites that exact `active-task:*` identity (or owns the exact original
|
|
220
|
+
input). Unrelated tasks survive.
|
|
221
|
+
- Mixed router issues are partitioned. Attention is repaired and revalidated
|
|
222
|
+
first; a still-invalid action plan is then repaired without reopening reply
|
|
223
|
+
authority. Final stage, issue codes, and bounded raw preview remain available
|
|
224
|
+
in diagnostics.
|
|
225
|
+
- A foreground inference-unavailable result gets one normal-scheduler replay of
|
|
226
|
+
the same input and causal bundle. The original completion promise and typing
|
|
227
|
+
lease survive the handoff. A new activity card is not registered. Success
|
|
228
|
+
delivers once; exhaustion records a failed terminal intake with exact issue
|
|
229
|
+
codes. Authenticated admin DMs retain their existing task-safe direct
|
|
230
|
+
admission instead of entering this public-group recovery path.
|
|
231
|
+
- Terminal action review receives a candidate URL admission receipt, the exact
|
|
232
|
+
current-run WebFetch receipts bound to those URLs, and explicit instructions
|
|
233
|
+
to assess source identity, relevance, and adjacent-claim support. Missing
|
|
234
|
+
evidence selects model-authored continuation, not host-authored completion.
|
|
235
|
+
- Quick-chat review knows it has no retrieval receipts and must select a typed
|
|
236
|
+
action continuation when a source is needed.
|
|
237
|
+
- The final transport boundary emits only canonical final URLs from successful
|
|
238
|
+
current-run receipts. It withholds unfetched, dead, malformed, alternate-
|
|
239
|
+
scheme, domain-shaped, and auto-linkable destinations without exposing the
|
|
240
|
+
old `unverified URL` annotation. A typed receipt and operator count preserve
|
|
241
|
+
the failure evidence.
|
|
242
|
+
|
|
243
|
+
## Verification evidence
|
|
244
|
+
|
|
245
|
+
- `pnpm --filter omnius build` — passed.
|
|
246
|
+
- Seven focused Telegram files — 251 tests passed, including Case Theory mixed
|
|
247
|
+
repair, scheduled recovery success/exhaustion, task retirement, typing,
|
|
248
|
+
terminal metacognition, quick chat, canonical URL delivery, and observability.
|
|
249
|
+
- `telegram-intake-presentation.test.ts` — 7 tests passed after preserving the
|
|
250
|
+
authenticated-admin degraded admission path.
|
|
251
|
+
- Complete CLI suite was executed: 2,902 tests passed. Three unrelated existing
|
|
252
|
+
UI assertions remain red (`brand-palette`, `live-media-status`, and
|
|
253
|
+
`tui-resize-stability`); the one initially affected Telegram presentation test
|
|
254
|
+
was corrected and passes focused. No live model inference, Telegram replay,
|
|
255
|
+
npm publication, global-package mutation, or daemon restart was performed.
|
|
256
|
+
- Implementation commit: `d6a6cb6e` (`fix telegram router recovery and link
|
|
257
|
+
evidence`).
|
|
258
|
+
- Post-closeout all-path audit: 217/217 focused tests passed across the complete
|
|
259
|
+
Telegram bridge suite, verified-link delivery, terminal/streamed delivery,
|
|
260
|
+
and observability. `pnpm --filter omnius build` passed. The audit additionally
|
|
261
|
+
covers public live previews, private native drafts, no-tools reflection,
|
|
262
|
+
direct message/edit/button effects, and media captions. No live inference,
|
|
263
|
+
Telegram write, npm publication, installed-package mutation, or daemon
|
|
264
|
+
restart was performed.
|
|
265
|
+
- The complete CLI suite was rerun after the all-path audit: 2,906/2,909 tests
|
|
266
|
+
passed. The only failures are the same three unrelated pre-existing TUI
|
|
267
|
+
assertions (`brand-palette`, `live-media-status`, and
|
|
268
|
+
`tui-resize-stability`); no new failure was introduced.
|
|
269
|
+
- All-path URL audit implementation commit: `61070db4` (`fix telegram URL
|
|
270
|
+
review bypasses`).
|
|
271
|
+
|
|
272
|
+
## Primary source targets
|
|
273
|
+
|
|
274
|
+
- `packages/cli/src/tui/telegram-bridge.ts`
|
|
275
|
+
- quick-chat delivery lifecycle
|
|
276
|
+
- open-task identity/retirement
|
|
277
|
+
- typed decision validation and domain reconciliation
|
|
278
|
+
- router-recovery scheduling and typing ownership
|
|
279
|
+
- bounded diagnostics
|
|
280
|
+
- verified URL receipt collection, self-review, and final HTML delivery
|
|
281
|
+
- `packages/cli/tests/telegram-bot-api-10.test.ts`
|
|
282
|
+
- `packages/cli/tests/telegram-working-indicator.test.ts`
|
|
283
|
+
- Additional focused test file only if isolation materially improves clarity.
|
|
284
|
+
|
|
285
|
+
## Publication and runtime boundary
|
|
286
|
+
|
|
287
|
+
Repository implementation, tests, a scoped commit, and push to `origin/main`
|
|
288
|
+
are authorized by the repository policy. Do not publish npm, edit the installed
|
|
289
|
+
global package, restart the live Telegram instance, mutate its conversation
|
|
290
|
+
state, or replay a live message as part of this work order. The user retains
|
|
291
|
+
publication and field-acceptance authority.
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.765",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omnius",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.765",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
package/package.json
CHANGED