omnius 1.0.871 → 1.0.873
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/api/py-embed.js +3 -0
- package/dist/index.js +2 -2
- package/dist/library.js +3109 -2961
- package/dist/tui/native/worker.js +1363 -219
- package/dist/update-worker.js +3 -0
- package/docs/DISCOVERY.json +168 -0
- package/docs/DISCOVERY.md +5 -0
- package/docs/reference/session-controls.md +11 -0
- package/docs/reference/task-observability.md +25 -0
- package/docs/reference/work-queue.md +40 -0
- package/docs/work-orders/evidence/task-observability-state-verification-20261017.json +74 -0
- package/docs/work-orders/evidence/work-queue-core-verification-20261017.json +56 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/dist/update-worker.js
CHANGED
|
@@ -298769,6 +298769,9 @@ var BASE_URL = `http://localhost:${DEFAULT_PORT}`;
|
|
|
298769
298769
|
// packages/execution/dist/tools/opencode.js
|
|
298770
298770
|
init_process_async();
|
|
298771
298771
|
|
|
298772
|
+
// packages/execution/dist/tools/working-notes.js
|
|
298773
|
+
var STORE_BYTES = 2 * 1024 * 1024;
|
|
298774
|
+
|
|
298772
298775
|
// packages/execution/dist/tools/project-scaffolding.js
|
|
298773
298776
|
var COMMON_HEAD_SECTIONS = [
|
|
298774
298777
|
["Overview", "Goal, scope, non-goals."],
|
package/docs/DISCOVERY.json
CHANGED
|
@@ -32538,6 +32538,38 @@
|
|
|
32538
32538
|
}
|
|
32539
32539
|
]
|
|
32540
32540
|
},
|
|
32541
|
+
{
|
|
32542
|
+
"id": "guide.reference-session-controls",
|
|
32543
|
+
"kind": "guide",
|
|
32544
|
+
"title": "Terminal session controls",
|
|
32545
|
+
"summary": "The header shows open sessions. Each tab has a separate × control. Closing a tab preserves its saved conversation and draft; closing the active tab selects a neighbour, or creates a new session when it was the last tab. Active work must finish or stop first. Failed transitions keep the original tab.",
|
|
32546
|
+
"keywords": [
|
|
32547
|
+
"reference",
|
|
32548
|
+
"session",
|
|
32549
|
+
"controls",
|
|
32550
|
+
"md"
|
|
32551
|
+
],
|
|
32552
|
+
"maturity": "stable",
|
|
32553
|
+
"audiences": [
|
|
32554
|
+
"user",
|
|
32555
|
+
"integrator",
|
|
32556
|
+
"coding-agent"
|
|
32557
|
+
],
|
|
32558
|
+
"layer": "documentation",
|
|
32559
|
+
"interfaces": [
|
|
32560
|
+
{
|
|
32561
|
+
"type": "file",
|
|
32562
|
+
"target": "docs/reference/session-controls.md"
|
|
32563
|
+
}
|
|
32564
|
+
],
|
|
32565
|
+
"references": [
|
|
32566
|
+
{
|
|
32567
|
+
"type": "documentation",
|
|
32568
|
+
"target": "docs/reference/session-controls.md",
|
|
32569
|
+
"relation": "canonical-artifact"
|
|
32570
|
+
}
|
|
32571
|
+
]
|
|
32572
|
+
},
|
|
32541
32573
|
{
|
|
32542
32574
|
"id": "guide.reference-slash-commands",
|
|
32543
32575
|
"kind": "guide",
|
|
@@ -32570,6 +32602,70 @@
|
|
|
32570
32602
|
}
|
|
32571
32603
|
]
|
|
32572
32604
|
},
|
|
32605
|
+
{
|
|
32606
|
+
"id": "guide.reference-task-observability",
|
|
32607
|
+
"kind": "guide",
|
|
32608
|
+
"title": "Tasks, notes and scoped work",
|
|
32609
|
+
"summary": "The native terminal's details rail includes TASKS / NOTES. It presents the active session's checklist as a hierarchy, public operational notes, and recorded runner activity. It remains available during transcript scrollback. When viewing an agent tab, the session label identifies which session owns the displayed checklist.",
|
|
32610
|
+
"keywords": [
|
|
32611
|
+
"reference",
|
|
32612
|
+
"task",
|
|
32613
|
+
"observability",
|
|
32614
|
+
"md"
|
|
32615
|
+
],
|
|
32616
|
+
"maturity": "stable",
|
|
32617
|
+
"audiences": [
|
|
32618
|
+
"user",
|
|
32619
|
+
"integrator",
|
|
32620
|
+
"coding-agent"
|
|
32621
|
+
],
|
|
32622
|
+
"layer": "documentation",
|
|
32623
|
+
"interfaces": [
|
|
32624
|
+
{
|
|
32625
|
+
"type": "file",
|
|
32626
|
+
"target": "docs/reference/task-observability.md"
|
|
32627
|
+
}
|
|
32628
|
+
],
|
|
32629
|
+
"references": [
|
|
32630
|
+
{
|
|
32631
|
+
"type": "documentation",
|
|
32632
|
+
"target": "docs/reference/task-observability.md",
|
|
32633
|
+
"relation": "canonical-artifact"
|
|
32634
|
+
}
|
|
32635
|
+
]
|
|
32636
|
+
},
|
|
32637
|
+
{
|
|
32638
|
+
"id": "guide.reference-work-queue",
|
|
32639
|
+
"kind": "guide",
|
|
32640
|
+
"title": "Mid-task intake and work queue",
|
|
32641
|
+
"summary": "The native terminal's WORK / QUEUE section tracks user requests. TASKS / NOTES tracks the implementation steps, notes and observed execution layers within a task. Adding a request does not create a fake todo or replace the active objective.",
|
|
32642
|
+
"keywords": [
|
|
32643
|
+
"reference",
|
|
32644
|
+
"work",
|
|
32645
|
+
"queue",
|
|
32646
|
+
"md"
|
|
32647
|
+
],
|
|
32648
|
+
"maturity": "stable",
|
|
32649
|
+
"audiences": [
|
|
32650
|
+
"user",
|
|
32651
|
+
"integrator",
|
|
32652
|
+
"coding-agent"
|
|
32653
|
+
],
|
|
32654
|
+
"layer": "documentation",
|
|
32655
|
+
"interfaces": [
|
|
32656
|
+
{
|
|
32657
|
+
"type": "file",
|
|
32658
|
+
"target": "docs/reference/work-queue.md"
|
|
32659
|
+
}
|
|
32660
|
+
],
|
|
32661
|
+
"references": [
|
|
32662
|
+
{
|
|
32663
|
+
"type": "documentation",
|
|
32664
|
+
"target": "docs/reference/work-queue.md",
|
|
32665
|
+
"relation": "canonical-artifact"
|
|
32666
|
+
}
|
|
32667
|
+
]
|
|
32668
|
+
},
|
|
32573
32669
|
{
|
|
32574
32670
|
"id": "guide.research-aiwg-long-horizon-feature-workflow",
|
|
32575
32671
|
"kind": "guide",
|
|
@@ -40552,6 +40648,42 @@
|
|
|
40552
40648
|
}
|
|
40553
40649
|
]
|
|
40554
40650
|
},
|
|
40651
|
+
{
|
|
40652
|
+
"id": "guide.work-orders-evidence-task-observability-state-verification-20261017",
|
|
40653
|
+
"kind": "guide",
|
|
40654
|
+
"title": "Task Observability State Verification 20261017",
|
|
40655
|
+
"summary": "Bundled Omnius documentation artifact: docs/work-orders/evidence/task-observability-state-verification-20261017.json.",
|
|
40656
|
+
"keywords": [
|
|
40657
|
+
"work",
|
|
40658
|
+
"orders",
|
|
40659
|
+
"evidence",
|
|
40660
|
+
"task",
|
|
40661
|
+
"observability",
|
|
40662
|
+
"state",
|
|
40663
|
+
"verification",
|
|
40664
|
+
"20261017",
|
|
40665
|
+
"json"
|
|
40666
|
+
],
|
|
40667
|
+
"maturity": "internal",
|
|
40668
|
+
"audiences": [
|
|
40669
|
+
"maintainer",
|
|
40670
|
+
"large-context-agent"
|
|
40671
|
+
],
|
|
40672
|
+
"layer": "documentation",
|
|
40673
|
+
"interfaces": [
|
|
40674
|
+
{
|
|
40675
|
+
"type": "file",
|
|
40676
|
+
"target": "docs/work-orders/evidence/task-observability-state-verification-20261017.json"
|
|
40677
|
+
}
|
|
40678
|
+
],
|
|
40679
|
+
"references": [
|
|
40680
|
+
{
|
|
40681
|
+
"type": "documentation",
|
|
40682
|
+
"target": "docs/work-orders/evidence/task-observability-state-verification-20261017.json",
|
|
40683
|
+
"relation": "canonical-artifact"
|
|
40684
|
+
}
|
|
40685
|
+
]
|
|
40686
|
+
},
|
|
40555
40687
|
{
|
|
40556
40688
|
"id": "guide.work-orders-evidence-telegram-all-free-live-20261013",
|
|
40557
40689
|
"kind": "guide",
|
|
@@ -41946,6 +42078,42 @@
|
|
|
41946
42078
|
}
|
|
41947
42079
|
]
|
|
41948
42080
|
},
|
|
42081
|
+
{
|
|
42082
|
+
"id": "guide.work-orders-evidence-work-queue-core-verification-20261017",
|
|
42083
|
+
"kind": "guide",
|
|
42084
|
+
"title": "Work Queue Core Verification 20261017",
|
|
42085
|
+
"summary": "Bundled Omnius documentation artifact: docs/work-orders/evidence/work-queue-core-verification-20261017.json.",
|
|
42086
|
+
"keywords": [
|
|
42087
|
+
"work",
|
|
42088
|
+
"orders",
|
|
42089
|
+
"evidence",
|
|
42090
|
+
"work",
|
|
42091
|
+
"queue",
|
|
42092
|
+
"core",
|
|
42093
|
+
"verification",
|
|
42094
|
+
"20261017",
|
|
42095
|
+
"json"
|
|
42096
|
+
],
|
|
42097
|
+
"maturity": "internal",
|
|
42098
|
+
"audiences": [
|
|
42099
|
+
"maintainer",
|
|
42100
|
+
"large-context-agent"
|
|
42101
|
+
],
|
|
42102
|
+
"layer": "documentation",
|
|
42103
|
+
"interfaces": [
|
|
42104
|
+
{
|
|
42105
|
+
"type": "file",
|
|
42106
|
+
"target": "docs/work-orders/evidence/work-queue-core-verification-20261017.json"
|
|
42107
|
+
}
|
|
42108
|
+
],
|
|
42109
|
+
"references": [
|
|
42110
|
+
{
|
|
42111
|
+
"type": "documentation",
|
|
42112
|
+
"target": "docs/work-orders/evidence/work-queue-core-verification-20261017.json",
|
|
42113
|
+
"relation": "canonical-artifact"
|
|
42114
|
+
}
|
|
42115
|
+
]
|
|
42116
|
+
},
|
|
41949
42117
|
{
|
|
41950
42118
|
"id": "guide.work-orders-hermes-architecture-deltas-01-public-scrutiny-provenance-control-index-uppercase",
|
|
41951
42119
|
"kind": "guide",
|
package/docs/DISCOVERY.md
CHANGED
|
@@ -499,7 +499,10 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
499
499
|
| `guide.reference-configuration` | Configuration Reference | Configuration is layered from environment, global user settings, project settings, and active TUI state. |
|
|
500
500
|
| `guide.reference-omni-analysis` | Omni media analysis | Omnius uses an explicitly configured Omni adapter for genuine audio and video comprehension. A model name containing -omni does not add audio/video execution to stock Ollama: the adapter must decode the media and run the corresponding model/projector weights. An unavailable runtime is an unavailable capability, never a reason to substitute synthetic observat |
|
|
501
501
|
| `guide.reference-rest-api` | REST API Reference | This is the maintained human inventory for the supported Omnius daemon API. The machine contract is generated by packages/cli/src/api/openapi.ts and served at /openapi.json; every operation in that contract must appear here. The root README links to this inventory and stays focused on the system overview. Browser HTML routes and implementation-only compatibi |
|
|
502
|
+
| `guide.reference-session-controls` | Terminal session controls | The header shows open sessions. Each tab has a separate × control. Closing a tab preserves its saved conversation and draft; closing the active tab selects a neighbour, or creates a new session when it was the last tab. Active work must finish or stop first. Failed transitions keep the original tab. |
|
|
502
503
|
| `guide.reference-slash-commands` | Slash Commands | This file is generated from packages/cli/src/tui/command-registry.ts. |
|
|
504
|
+
| `guide.reference-task-observability` | Tasks, notes and scoped work | The native terminal's details rail includes TASKS / NOTES. It presents the active session's checklist as a hierarchy, public operational notes, and recorded runner activity. It remains available during transcript scrollback. When viewing an agent tab, the session label identifies which session owns the displayed checklist. |
|
|
505
|
+
| `guide.reference-work-queue` | Mid-task intake and work queue | The native terminal's WORK / QUEUE section tracks user requests. TASKS / NOTES tracks the implementation steps, notes and observed execution layers within a task. Adding a request does not create a fake todo or replace the active objective. |
|
|
503
506
|
| `guide.research-aiwg-long-horizon-feature-workflow` | AIWG research teams and long-horizon feature delivery | Date: 2026-09-05. Status: design research for consolidation; no runtime implementation in this note. |
|
|
504
507
|
| `guide.research-archived-context-window-attention-model` | Context Window Attention Model | Bundled Omnius documentation artifact: docs/research/_archived/context_window_attention_model.py. |
|
|
505
508
|
| `guide.research-archived-context-window-attention-spec` | Context Window Attention-Weighted Optimization Spec | The context window treats all items (system prompt, memory cards, chat history, voice transcriptions, reflection notes) at roughly equal attention weight (~1.0). This causes: |
|
|
@@ -724,6 +727,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
724
727
|
| `guide.work-orders-evidence-session-transcript-light-320-session-image` | Session Transcript Light 320 Session Image | Bundled Omnius documentation artifact: docs/work-orders/evidence/session-transcript-light-320-session-image.png. |
|
|
725
728
|
| `guide.work-orders-evidence-session-transcript-light-320-session-working` | Session Transcript Light 320 Session Working | Bundled Omnius documentation artifact: docs/work-orders/evidence/session-transcript-light-320-session-working.png. |
|
|
726
729
|
| `guide.work-orders-evidence-source-hierarchy-installed-20261013` | Source Hierarchy Installed 20261013 | Bundled Omnius documentation artifact: docs/work-orders/evidence/source-hierarchy-installed-20261013.json. |
|
|
730
|
+
| `guide.work-orders-evidence-task-observability-state-verification-20261017` | Task Observability State Verification 20261017 | Bundled Omnius documentation artifact: docs/work-orders/evidence/task-observability-state-verification-20261017.json. |
|
|
727
731
|
| `guide.work-orders-evidence-telegram-all-free-live-20261013` | Telegram All Free Live 20261013 | Bundled Omnius documentation artifact: docs/work-orders/evidence/telegram-all-free-live-20261013.json. |
|
|
728
732
|
| `guide.work-orders-evidence-telegram-completion-review-live-20261013` | Telegram Completion Review Live 20261013 | Bundled Omnius documentation artifact: docs/work-orders/evidence/telegram-completion-review-live-20261013.json. |
|
|
729
733
|
| `guide.work-orders-evidence-telegram-local-inference-live-20261014` | Telegram Local Inference Live 20261014 | Bundled Omnius documentation artifact: docs/work-orders/evidence/telegram-local-inference-live-20261014.json. |
|
|
@@ -763,6 +767,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
763
767
|
| `guide.work-orders-evidence-web-source-parent-capacity-before-20261013` | Web Source Parent Capacity Before 20261013 | Bundled Omnius documentation artifact: docs/work-orders/evidence/web-source-parent-capacity-before-20261013.json. |
|
|
764
768
|
| `guide.work-orders-evidence-web-source-wide-coordinator-live-20261013` | Web Source Wide Coordinator Live 20261013 | Bundled Omnius documentation artifact: docs/work-orders/evidence/web-source-wide-coordinator-live-20261013.json. |
|
|
765
769
|
| `guide.work-orders-evidence-web-source-worker-validation-before-20261013` | Web Source Worker Validation Before 20261013 | Bundled Omnius documentation artifact: docs/work-orders/evidence/web-source-worker-validation-before-20261013.json. |
|
|
770
|
+
| `guide.work-orders-evidence-work-queue-core-verification-20261017` | Work Queue Core Verification 20261017 | Bundled Omnius documentation artifact: docs/work-orders/evidence/work-queue-core-verification-20261017.json. |
|
|
766
771
|
| `guide.work-orders-hermes-architecture-deltas-01-public-scrutiny-provenance-control-index-uppercase` | Public Scrutiny Provenance Control Index | Bundled Omnius documentation artifact: docs/work-orders/hermes-architecture-deltas/01-public-scrutiny-provenance-control/INDEX.md. |
|
|
767
772
|
| `guide.work-orders-hermes-architecture-deltas-01-public-scrutiny-provenance-control-workorder-uppercase` | Workorder: Public Scrutiny Provenance Control | Add a public Telegram scrutiny control plane that can elevate completion provenance checks when public accuracy risk rises, without hard-coded scenario phrases or shortcut wording that teaches the model to satisfy the gate without evidence. |
|
|
768
773
|
| `guide.work-orders-hermes-architecture-deltas-02-context-engine-plugin-boundary-index-uppercase` | Context Engine Plugin Boundary Index | Bundled Omnius documentation artifact: docs/work-orders/hermes-architecture-deltas/02-context-engine-plugin-boundary/INDEX.md. |
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Terminal session controls
|
|
2
|
+
|
|
3
|
+
The header shows open sessions. Each tab has a separate × control. Closing a tab preserves its saved conversation and draft; closing the active tab selects a neighbour, or creates a new session when it was the last tab. Active work must finish or stop first. Failed transitions keep the original tab.
|
|
4
|
+
|
|
5
|
+
**SESSIONS**, beside **+ NEW**, opens the saved-session catalog for the current project directory. Type to filter, use arrows to select, and press Enter to resume the original conversation. Tab and Shift+Tab traverse the filter and footer actions. Escape or an outside click closes the picker. `/sessions` and `/session` open the same picker in the native terminal.
|
|
6
|
+
|
|
7
|
+
The catalog includes saved sessions beyond the visible tab strip, including closed tabs and unsent drafts. Resuming restores the saved document and session identity through the existing session owner. It does not append a replay or request a generated summary.
|
|
8
|
+
|
|
9
|
+
**DELETE** requires a second confirmation and is available for inactive saved conversations. It removes the saved transcript, interface draft, catalog entries and current context projection. Generated media, shared model weights and operational audit records remain. Active work, pending delivery, update handoffs and concurrent writers can block removal; a failed or partial removal is reported in the modal. Close other terminal instances before deleting history they could save again.
|
|
10
|
+
|
|
11
|
+
The controls use the terminal palette and existing native modal dimming, corner animation and focus restoration. The right-side actions stay pinned while the tab strip scrolls within the remaining width.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Tasks, notes and scoped work
|
|
2
|
+
|
|
3
|
+
The native terminal's details rail includes **TASKS / NOTES**. It presents the active session's checklist as a hierarchy, public operational notes, and recorded runner activity. It remains available during transcript scrollback. When viewing an agent tab, the session label identifies which session owns the displayed checklist.
|
|
4
|
+
|
|
5
|
+
At narrow terminal widths, or with the right rail collapsed, a three-row task strip appears above the transcript. Current work appears first; pending work is dimmed. Completed items leave this compact strip and remain in the detailed hierarchy. Click a task to open its details. Tab moves between controls; Enter or Space expands disclosures, and Left/Right navigates the compact strip. Disclosure state and the input draft survive layout changes.
|
|
6
|
+
|
|
7
|
+
Todo items use square marks: □ pending, an animated shaded block for active work, ■ completed and ▣ blocked. Repeated progress meters use block fills; individual circular status icons are retained. `OMNIUS_TUI_REDUCE_MOTION=1` disables task animation. Animation runs only for visible active tasks and stops when the work is idle or the view is destroyed.
|
|
8
|
+
|
|
9
|
+
Task details expose recorded ownership, dependencies, requirement and acceptance links, sources, affected paths and action constraints when supplied. **A completed checklist item is not independently verified work.** Worker output remains a candidate; the existing workflow's host-bound receipts and exact artifact versions govern verification. The interface does not advance these states itself.
|
|
10
|
+
|
|
11
|
+
Recorded orchestration shows actual execution, context compaction, trajectory checkpoints, completion holds and terminal receipt identities. A scoped workflow worker also exposes its exact assignment hash, matching the input hash used in its receipt, with the admitted plan/card references and scope/tool counts. This is the latest assignment observation, not a history of every worker. Resumed observations are marked “Last observed”; unfinished historical execution is not displayed as currently attached.
|
|
12
|
+
|
|
13
|
+
## Public notes and persistence
|
|
14
|
+
|
|
15
|
+
The `working_notes` tool supports add, list, search, summary and clear. Notes intentionally supplied through this tool are public operational records, not hidden model reasoning or verification evidence. Host-bound session identity takes precedence over a model-supplied session identifier.
|
|
16
|
+
|
|
17
|
+
Notes persist at `$OMNIUS_HOME/working-notes/<session SHA-256>.json`; metadata-only activity persists at `$OMNIUS_HOME/task-observations/<session SHA-256>.json`. Without `OMNIUS_HOME`, the root is `~/.omnius`. Todos retain their existing `todos/<session>.json` location. Notes clear only within their session, and note IDs/revisions continue monotonically. Corrupt or unreadable stores produce an unavailable state instead of fabricated empty success. Competing note writes return a retryable busy result rather than blocking terminal rendering.
|
|
18
|
+
|
|
19
|
+
Native snapshots are bounded to 256 tasks and 64 notes with explicit omitted counts. Active tasks and ancestors are prioritized; long display text ends in an ellipsis. Full notes remain accessible through the tool. Activity storage excludes raw prompts, assistant output, tool arguments/results and private reasoning. It is advisory observability, not a second task acceptance ledger.
|
|
20
|
+
|
|
21
|
+
## Scoped context
|
|
22
|
+
|
|
23
|
+
Workflow assignments now use a deterministic versioned context envelope. Host authority, tool/path scope, frozen acceptance references and exact evaluator inputs are separate from quoted input artifacts. Large source bodies are omitted whole with their immutable retrieval references. Authority itself is never silently truncated: an oversized contract requires splitting the card. Fields that the current invocation does not provide remain explicitly unavailable.
|
|
24
|
+
|
|
25
|
+
This change uses the existing workflow controller, workboard, task contracts and trusted child receipt boundary. It does not add a cross-process task scheduler, fenced task leases or automatic independent worktrees. The broader orchestration brief's follow-on gaps, frozen acceptance criteria and verification evidence are tracked in [.aiwg/planning/task-orchestration-20261017](../../.aiwg/planning/task-orchestration-20261017/contract.md); the primary-source review is in [research.md](../../.aiwg/research/task-orchestration-20261017/research.md).
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Mid-task intake and work queue
|
|
2
|
+
|
|
3
|
+
The native terminal's **WORK / QUEUE** section tracks user requests. **TASKS / NOTES** tracks the implementation steps, notes and observed execution layers within a task. Adding a request does not create a fake todo or replace the active objective.
|
|
4
|
+
|
|
5
|
+
## Incoming requests
|
|
6
|
+
|
|
7
|
+
Text submitted while a task runs is saved, with its original whitespace and attachment references, before a separate intake reviewer starts. The reviewer uses the configured backend, a bounded snapshot of the current objective and ordered work, a strict response schema, no tools and a total deadline. It cannot execute work or change model configuration. Normal execution continues during review.
|
|
8
|
+
|
|
9
|
+
The host routes a fresh recommendation as follows:
|
|
10
|
+
|
|
11
|
+
- **Queue:** retain additional work in the upcoming execution order.
|
|
12
|
+
- **Amend:** admit the original request through the existing steering boundary. The host prevents a model from promoting an amendment into a replacement objective.
|
|
13
|
+
- **Status:** show the recorded public state in the request's receipt without changing the active goal.
|
|
14
|
+
- **Override requested / needs review:** retain the request for a deliberate action. A recommendation alone cannot interrupt work.
|
|
15
|
+
|
|
16
|
+
“Received,” “reviewing,” “admitted,” and “applied” are different receipts. A new constraint is not effective merely because it arrived. Use **Stop** when execution must stop immediately.
|
|
17
|
+
|
|
18
|
+
## Controls and presentation
|
|
19
|
+
|
|
20
|
+
Expand WORK / QUEUE in the right details sidebar. Current work appears first; intake is unnumbered until reviewed; queued requests show their actual execution order. Expand a row to inspect the original message, attachment references, public recommendation and receipts. No private model reasoning is stored.
|
|
21
|
+
|
|
22
|
+
Eligible requests expose **Queue**, **Apply**, **Replace active**, **Cancel**, **Review again**, and order controls. Apply refines the current objective. Replace active uses the existing safe replacement boundary and retains the predecessor's effects and interruption record. Controls carry request and queue revisions; stale clicks cannot silently act on newer state. Already admitted work uses the existing Stop owner, not a second cancellation mechanism.
|
|
23
|
+
|
|
24
|
+
`/queue <request>` skips semantic review and explicitly queues future work. `/stop` and Ctrl+C immediately fence root admission, cancel pending intake and queued work, and stop the running owner. A pre-run claim with uncertain preprocessing effects remains held for inspection. Escape pauses without discarding work. In a narrow terminal, the existing **Details** inspector exposes the queue; there is no second task strip or new input-area feed.
|
|
25
|
+
|
|
26
|
+
Busy-session media is retained with its original path and attachment identity. Queue it to use the existing media preprocessing path. Applying its path as current context is an explicit action; background intake does not inject an unfinished transcription or stale image. Legacy command-started runners retain their existing task/activity presentation rather than receiving fabricated original-request records.
|
|
27
|
+
|
|
28
|
+
## Persistence and recovery
|
|
29
|
+
|
|
30
|
+
Requests live in `$OMNIUS_HOME/work-queues/` (default `~/.omnius/work-queues/`), under a hash of the canonical project directory and session ID. Files use restrictive permissions, bounded validated schemas, atomic replacement, revisions and a single root claim. Titles never replace executable originals.
|
|
31
|
+
|
|
32
|
+
A claim is saved before the existing root drain dispatches work. Actual run, epoch, owner generation and claim identity fence binding and terminal receipts. Exact interrupted-session resume reserves the existing request and checks that the runner adopted that interruption. Unknown effects are not automatically replayed. Proven-dead host processes become held records; live or unverified owners are not seized. Updater checkpoints retain work IDs; a missing referenced ledger record becomes held instead of disappearing or replaying.
|
|
33
|
+
|
|
34
|
+
A corrupt store, uncertain durable write or writer lock fails closed and is shown as an error. A stale writer lock can require operator inspection/repair; the UI never spins waiting for it or steals an unverified owner. The store retains up to 1,000 requests and 8 MiB per scope; the sidebar shows all live requests and the most recent 40 history items. Older retained history is included in the omitted count.
|
|
35
|
+
|
|
36
|
+
The renderer retains queue payloads across metric/input frames, so unchanged original messages are not serialized repeatedly. This package changes native interactive intake; browser/daemon check-ins and Telegram retain their existing ingress owners.
|
|
37
|
+
|
|
38
|
+
## Verification
|
|
39
|
+
|
|
40
|
+
The implementation contract and acceptance evidence are in `.aiwg/planning/steering-work-queue-20261017/`. Tests use temporary stores, controlled model responses and actual source runner/native terminal implementations. PTY checks cover five terminal sizes, pointer/keyboard controls, Unicode draft preservation and responsiveness while review is pending. These are source tests and controlled terminal fixtures, not live inference or a restarted production daemon.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"feature": "OBS.STATE.002: durable public operational notes, bounded host workflow context and actual assignment observability",
|
|
3
|
+
"contract": ".aiwg/planning/task-orchestration-20261017/contract.md",
|
|
4
|
+
"verifiedAt": "2026-10-17T08:16:06.403431+00:00",
|
|
5
|
+
"baseCommit": "b3c88ea139f8461096988568316ecf1bb3ca5624",
|
|
6
|
+
"passed": true,
|
|
7
|
+
"uniqueTests": 148,
|
|
8
|
+
"uniqueTestFiles": 8,
|
|
9
|
+
"suites": {
|
|
10
|
+
"delegation-contract.test.ts": 6,
|
|
11
|
+
"feature-workflow-child.test.ts": 19,
|
|
12
|
+
"todo-store.test.ts": 41,
|
|
13
|
+
"workboard.test.ts": 37,
|
|
14
|
+
"working-notes-durable.test.ts": 13,
|
|
15
|
+
"working-notes.test.ts": 14,
|
|
16
|
+
"native-inprocess-agent-runner.test.ts": 1,
|
|
17
|
+
"native-inprocess-agent.test.ts": 17
|
|
18
|
+
},
|
|
19
|
+
"rawReports": [
|
|
20
|
+
"/tmp/omnius-observability-state-final.json",
|
|
21
|
+
"/tmp/omnius-observability-cli-child.json"
|
|
22
|
+
],
|
|
23
|
+
"checks": {
|
|
24
|
+
"executionNoEmit": "PASS: pnpm --filter @omnius/execution exec tsc --noEmit --tsBuildInfoFile /tmp/omnius-observability-state-typecheck.tsbuildinfo",
|
|
25
|
+
"ownedDiffCheck": "PASS",
|
|
26
|
+
"combinedSourceNoEmit": "PASS: pnpm --filter omnius exec tsc --project /tmp/omnius-omni-typecheck-0yzx1ycf/tsconfig.json (CLI + execution source aliases, no shared dist)"
|
|
27
|
+
},
|
|
28
|
+
"verificationScope": "Existing notes/delegation/todo/workboard regressions; new durable notes across independent Node processes; actual workflow child and AgenticRunner completion using a synthetic inference transport. Native UI producer/rendering and broader workflow gates are recorded separately.",
|
|
29
|
+
"behavior": [
|
|
30
|
+
"WorkingNotesTool persists explicitly supplied public operational notes under OMNIUS_HOME/working-notes/<SHA256(session)>.json. Atomic restricted-permission writes and monotonic revisions/IDs survive process restart; clear is scoped and preserves the counter. Different homes and distinct raw session identities cannot alias.",
|
|
31
|
+
"Host bindExecutionScope takes precedence over model-supplied session_id. Existing adapter/runner binding hooks already forward this authority; no protected adapter, runner or execution/types source was changed. Unbound calls can use current TUI/Telegram async host identity, then explicit/ambient legacy scope.",
|
|
32
|
+
"getWorkingNotesSnapshot returns detached immutable bounded snapshots with total/omitted counts and available/unavailable status. subscribeWorkingNotes emits scoped local changes and observes another process atomic replacement through fs.watch. Unsubscribe closes the watcher; no polling/idle animation timer is added.",
|
|
33
|
+
"Malformed, oversized, wrong-scope, symlink or unknown/private-field stores are rejected without overwrite. Validated records are also explicitly projected into the whitelist. Invalid note control data is refused. Observer failure cannot change a persisted mutation.",
|
|
34
|
+
"Cooperating note writers use a short exclusive file lock. Contention returns immediate retryable working_notes_busy without blocking the TUI event loop; callers may retry asynchronously. Dead known PID locks can be recovered. This is notes-write coordination, not a new task lease/fencing scheduler.",
|
|
35
|
+
"buildFeatureWorkflowContextEnvelope compiles deterministic versioned authority from the admitted operation, card, read-only/owned scope, actual grant ceiling, pinned input/evaluator references, acceptance IDs, exact verifier command and existing result bounds. Missing planning facts remain explicitly unavailable.",
|
|
36
|
+
"Authoritative controls and source identities are never truncated. Oversized source bodies are omitted whole with exact references/character counts and artifact_read instructions; an oversized authority set requires splitting the card. Task/system rendering stays within its requested character budget. Instruction-like source data cannot replace host scope or evaluator identity.",
|
|
37
|
+
"Worker completion remains a candidate-only result; actual host-bound independent receipts and exact artifact revisions retain verification authority. Existing actual child input hash binds resolved task, system context and actual allowed tool names.",
|
|
38
|
+
"NativeInProcessAgent.onWorkflowAssignment emits only host metadata and the same computed inputHash reused by the actual terminal receipt. It emits no raw source bodies or path list, is absent for ordinary children and is abort-checked before dispatch. Synchronous observer throws and asynchronous rejection are isolated; real mocked-transport runner still completes correctly."
|
|
39
|
+
],
|
|
40
|
+
"limits": [
|
|
41
|
+
"No cross-process atomic task leases, ten-thousand-task scheduling support, independent worktree provisioning, universal exactly-once effects or new scheduler/database/service is claimed.",
|
|
42
|
+
"Current workflow child inputs do not separately supply parent objective text, numeric plan revision, constitution/SOP revision IDs, base commit, attempt number, resource budget, prior failure or reviewer identity. These remain unavailable; the exact admitted plan/card hashes remain authoritative.",
|
|
43
|
+
"Unscoped legacy getWorkingNotesSummary calls outside a trustworthy TUI/Telegram async scope still use explicit/ambient compatibility identity. Native observation uses an explicit captured session. A protected runner callsite can pass its exact session in a later independently owned hunk.",
|
|
44
|
+
"A notes lock with an unknown/corrupt owner is not displaced speculatively; it reports retryable busy rather than inventing ownership. External removal/regression of an observed store is reported unavailable."
|
|
45
|
+
],
|
|
46
|
+
"isolation": [
|
|
47
|
+
"All durable notes mutations and process fixtures use scratch OMNIUS_HOME; source compilation for the new-process fixture stays private under /tmp.",
|
|
48
|
+
"No shared dist/build, package install/publication, service/daemon changes, GPU allocations, model downloads or live inference.",
|
|
49
|
+
"Unrelated dirty agenticRunner/types/tool-adapter/Telegram files were preserved."
|
|
50
|
+
],
|
|
51
|
+
"deduplication": "Final130 execution tests plus18 CLI child tests equal148 unique tests in8 files. Earlier46/146 runs and root/UI independent suites are not added again.",
|
|
52
|
+
"ownedFiles": [
|
|
53
|
+
"packages/execution/src/tools/working-notes.ts",
|
|
54
|
+
"packages/execution/src/feature-workflow-child.ts",
|
|
55
|
+
"packages/execution/src/index.ts",
|
|
56
|
+
"packages/execution/tests/working-notes.test.ts",
|
|
57
|
+
"packages/execution/tests/working-notes-durable.test.ts",
|
|
58
|
+
"packages/execution/tests/feature-workflow-child.test.ts",
|
|
59
|
+
"packages/cli/src/tui/native-inprocess-agent.ts",
|
|
60
|
+
"packages/cli/tests/native-inprocess-agent.test.ts",
|
|
61
|
+
"packages/cli/tests/native-inprocess-agent-runner.test.ts"
|
|
62
|
+
],
|
|
63
|
+
"sourceSha256": {
|
|
64
|
+
"packages/execution/src/tools/working-notes.ts": "8e134f8a98ff179b4904d238bd155282465bbd08f4e46f373de27faa33e59b7d",
|
|
65
|
+
"packages/execution/src/feature-workflow-child.ts": "469016e9ebbce0459be1e528d25a1f8d35f1d1ca8a6233edcdbe54bf96a1b5ac",
|
|
66
|
+
"packages/execution/src/index.ts": "7953dc052e2fe7aa5f81f56806ab3f6fa026242d6f6d9f8f8c83bc59a23d68fd",
|
|
67
|
+
"packages/execution/tests/working-notes.test.ts": "e09aa5a57e9ff2b2744723c1ac01ef2b885dbe975fa0c592cfd93068035467fc",
|
|
68
|
+
"packages/execution/tests/working-notes-durable.test.ts": "92fba2932697c1e787edfa408df1d78e0f782d12dd21e32fd99b96023c563c8c",
|
|
69
|
+
"packages/execution/tests/feature-workflow-child.test.ts": "23512d71972778a78790ec5ba3eec1cb5a0fecea170d76944f6ac71351721c67",
|
|
70
|
+
"packages/cli/src/tui/native-inprocess-agent.ts": "2d57b08e10b045a89b97c34a91c3b661edaea1c71694752f56215ddec75d3a17",
|
|
71
|
+
"packages/cli/tests/native-inprocess-agent.test.ts": "689f785d57a25fd911a82f16098d4d42e3fe22c94c5d56ee9a23ff44ca8ace42",
|
|
72
|
+
"packages/cli/tests/native-inprocess-agent-runner.test.ts": "850a2e07e245e7dc4d1cf6516ab5cb16ed448ad305aacb735384dfdb08c82624"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "omnius.work-queue-core-verification.v1",
|
|
3
|
+
"recordedAt": "2026-10-17T08:49:36.180151+00:00",
|
|
4
|
+
"scope": "Native scoped durable user requests and separate advisory intake; root admission/UI integration is verified separately.",
|
|
5
|
+
"sourceFiles": {
|
|
6
|
+
"packages/cli/src/tui/work-queue.ts": "e201712dd0f2bf4c3892c7e442f88dc0918165fb9cf1749fdcabd5c168a025fb",
|
|
7
|
+
"packages/cli/src/tui/work-queue-review.ts": "6c65058ff7a7ea0b57a6e4435d08b8e9976311df78f992828917792a4433ff1c",
|
|
8
|
+
"packages/cli/src/tui/work-queue-controller.ts": "58893b2eada6d29f733777160c9af3f9079bd31f280ce6f139ed2b98bcd81af8",
|
|
9
|
+
"packages/cli/tests/work-queue.test.ts": "0f1f060828146881cecd0a3e001b9c8d817a720b1379ee0020481e5681b566f2",
|
|
10
|
+
"packages/cli/tests/work-queue-review.test.ts": "5c27457a67278804df47ff58ca68cb682fe92975d552918da43a64ab8647e0d4",
|
|
11
|
+
"packages/cli/tests/work-queue-controller.test.ts": "a9a6b3b70d6f8bd81d7bfc2db01f1976c5e0b83a953f7191e899d7989e35bb23",
|
|
12
|
+
"packages/cli/tests/work-queue-ownership.test.ts": "5f988a49bf88fd6558c6528df544d42622c692764672f86eda27b9e7e854d9b8"
|
|
13
|
+
},
|
|
14
|
+
"tests": {
|
|
15
|
+
"command": "cd packages/cli && ./node_modules/.bin/vitest run tests/work-queue.test.ts tests/work-queue-review.test.ts tests/work-queue-controller.test.ts tests/work-queue-ownership.test.ts --maxWorkers=3 --minWorkers=1",
|
|
16
|
+
"files": 4,
|
|
17
|
+
"passed": 61,
|
|
18
|
+
"failed": 0,
|
|
19
|
+
"suites": {
|
|
20
|
+
"work-queue.test.ts": 18,
|
|
21
|
+
"work-queue-review.test.ts": 13,
|
|
22
|
+
"work-queue-controller.test.ts": 18,
|
|
23
|
+
"work-queue-ownership.test.ts": 12
|
|
24
|
+
},
|
|
25
|
+
"log": "/tmp/omnius-work-queue-core-tests-final.log",
|
|
26
|
+
"independentSuiteOwner": "instrument_widgets",
|
|
27
|
+
"coverage": [
|
|
28
|
+
"Exact original text/attachments/delivery after reopen; immutable identity; idempotence; item/queue CAS; strict schema; storage bounds; restrictive writes; symlinks; immediate lock failure; subscriptions/disappearance",
|
|
29
|
+
"Single scoped root claim before dispatch; exact claim/run/epoch/generation terminal ownership; owner generation zero; safe replacement transfer; pre-run release; absent-process recovery and exact typed resume reservation",
|
|
30
|
+
"One static no-tool bounded model call; no repair or backend substitution; strict output schema; input bounds; cancellation/timeout; explicit context projection and progress-independent identity",
|
|
31
|
+
"Serial review/tail arrivals; active goal/session/epoch/order stale fencing; receipt before host effect; status hook; override held for deliberate user action; explicit queue bypass; failure/retry; cancellation/disposal; async late handler; backend acquisition bound",
|
|
32
|
+
"Independent stale ownership/CAS/restart and externally bounded locked-controller liveness"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"typecheck": {
|
|
36
|
+
"command": "./packages/cli/node_modules/.bin/tsc -p /tmp/omnius-work-queue-core-tsconfig.json --pretty false",
|
|
37
|
+
"scope": "Three new core source modules, no emit/incremental/build references",
|
|
38
|
+
"exitCode": 0,
|
|
39
|
+
"log": "/tmp/omnius-work-queue-core-typecheck.log"
|
|
40
|
+
},
|
|
41
|
+
"limitations": [
|
|
42
|
+
"Stale/incomplete writer lock fails closed immediately. It is not stolen automatically; a lock left by a crashed writer may require operator repair.",
|
|
43
|
+
"Recovery never automatically replays admitted/running work. recoverAbsentOwners uses PID plus Linux process start time and boot identity; live/inaccessible/unsupported owner identity remains attached or held by the host. Explicit recover(ownerAbsent:true) is a host attestation, not an inference decision.",
|
|
44
|
+
"Only a deliberate host/user action can authorize replacement. override_requested reviewer output remains needs_review.",
|
|
45
|
+
"This receipt contains controlled backend tests, not live model inference, CUDA tests, native terminal presentation or full application end-to-end evidence.",
|
|
46
|
+
"The final replacement receipt wording changed after the gate from first-action observation to safe-task-boundary observation; no behavior changed."
|
|
47
|
+
],
|
|
48
|
+
"safety": {
|
|
49
|
+
"inference": false,
|
|
50
|
+
"cuda": false,
|
|
51
|
+
"services": false,
|
|
52
|
+
"sharedBuilds": false,
|
|
53
|
+
"publish": false
|
|
54
|
+
},
|
|
55
|
+
"passed": true
|
|
56
|
+
}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.873",
|
|
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.873",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
package/package.json
CHANGED