omnius 1.0.874 → 1.0.875
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 +37 -20
- package/dist/providerRegistry.d.ts +6 -0
- package/dist/tui/native/worker.js +5 -3
- package/docs/DISCOVERY.json +426 -8
- package/docs/DISCOVERY.md +12 -1
- package/docs/guides/endpoint-requirements.md +33 -0
- package/docs/guides/sponsored-inference-mesh.md +84 -0
- package/docs/work-orders/evidence/endpoint-completion-verification-20261017.json +95 -0
- package/docs/work-orders/evidence/endpoint-source-verification-20261017.json +175 -0
- package/docs/work-orders/evidence/expanded-variant-repair-20261017.json +88 -0
- package/docs/work-orders/evidence/mesh-source-verification-20261017.json +46 -0
- package/docs/work-orders/evidence/mesh-transport-verification-20261017.json +156 -0
- package/docs/work-orders/evidence/opencode-endpoint-regression-20261017.json +984 -0
- package/docs/work-orders/evidence/sticky-catalog-candidate-release-20261017.json +314 -0
- package/npm-shrinkwrap.json +1705 -202
- package/package.json +78 -34
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Sponsored inference mesh
|
|
2
|
+
|
|
3
|
+
Omnius can route generation to explicitly trusted sponsors. A sponsor enables specific models, capacity and quotas; other trusted Omnius instances can use that capacity for their main agents, delegates and helpers through the same configured inference endpoint. Tools execute at the requesting instance. The sponsor runs generation only and does not receive a new conversation in its transcript.
|
|
4
|
+
|
|
5
|
+
This transport does not repair OpenCode service access. Provider authentication, access restrictions and quotas remain authoritative. Requests are never repeated on another sponsor after a dispatch, a partial response or a provider denial.
|
|
6
|
+
|
|
7
|
+
## Trust and privacy
|
|
8
|
+
|
|
9
|
+
Each instance keeps a persistent private identity and shares its public peer ID. Operators exchange peer IDs and reachable multiaddresses through a trusted channel. Both ends explicitly allow the other identity. There is no public peer autodial or open inference proxy.
|
|
10
|
+
|
|
11
|
+
Noise authenticates and encrypts the application stream, including through configured libp2p circuit relays. A relay can observe addressing, timing and sizes. The selected sponsor and inference provider receive plaintext. Local administrators can access their own running process and keys. See the primary [Noise specification](https://github.com/libp2p/specs/blob/master/noise/README.md) and [circuit relay protocol](https://libp2p.io/docs/circuit-relay/).
|
|
12
|
+
|
|
13
|
+
The Tracker repository informed the routing, framing, lifetime and capacity patterns. The first runtime supports direct TCP, secure WebSockets and explicitly configured circuit relays. Other Tracker carriers are inventoried in `.aiwg/planning/sponsored-inference-mesh-20261017/` but are not implemented here. No GitHub Pages deployment or browser engine is required.
|
|
14
|
+
|
|
15
|
+
## Configure an instance
|
|
16
|
+
|
|
17
|
+
Run `omnius mesh init`. This creates disabled configuration and a private identity in the Omnius config directory under `mesh/`. It prints the configuration path and public peer ID, never the private key or gateway token. Alternatively use a private dedicated directory:
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
omnius mesh init --config /private/omnius-mesh/config.json
|
|
21
|
+
omnius mesh identity --config /private/omnius-mesh/config.json
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The directory must be owner-only (`0700`); configuration, identity and ledger are private files (`0600`). Initialization refuses to overwrite existing configuration. Preserve the identity across restarts. Replacing it requires peers to deliberately trust the replacement.
|
|
25
|
+
|
|
26
|
+
Edit the private configuration before enabling it. The following is a schema example; replace the peer IDs, addresses and model with actual operator-approved values. Keep the random `gatewayToken` generated by initialization.
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"version": 1,
|
|
31
|
+
"enabled": true,
|
|
32
|
+
"gatewayPort": 11436,
|
|
33
|
+
"gatewayToken": "KEEP_THE_PRIVATE_RANDOM_TOKEN_CREATED_BY_INIT",
|
|
34
|
+
"listenAddresses": ["/ip4/0.0.0.0/tcp/4010"],
|
|
35
|
+
"relayAddresses": [],
|
|
36
|
+
"peers": [
|
|
37
|
+
{ "peerId": "TRUSTED_SPONSOR_PEER_ID", "addresses": ["/dns4/sponsor.example/tcp/4010/p2p/TRUSTED_SPONSOR_PEER_ID"] }
|
|
38
|
+
],
|
|
39
|
+
"allowedRequesters": ["TRUSTED_ORIGIN_PEER_ID"],
|
|
40
|
+
"offers": [
|
|
41
|
+
{
|
|
42
|
+
"id": "local-approved-model",
|
|
43
|
+
"model": "EXACT_APPROVED_MODEL_TAG",
|
|
44
|
+
"endpoint": "http://127.0.0.1:11434",
|
|
45
|
+
"protocol": "ollama",
|
|
46
|
+
"admission": "managed-ollama",
|
|
47
|
+
"contextTokens": 32768,
|
|
48
|
+
"maxOutputTokens": 4096,
|
|
49
|
+
"capacity": 1,
|
|
50
|
+
"maxRequestsPerMinute": 10,
|
|
51
|
+
"maxTokensPerDay": 100000
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
An origin-only instance leaves `offers` empty. A sponsor-only instance may leave `peers` empty, but must list permitted origin IDs in `allowedRequesters`. Discovery advertises only opaque offer IDs, model identifiers, expiry and declared capacity. Provider endpoints and keys stay local.
|
|
58
|
+
|
|
59
|
+
Local sponsorship requires the discovered managed Ollama broker endpoint. Before enabling actual accelerator-backed work, follow the repository's GPU reservation and exact model-placement preflight. Starting the mesh does not load/download a model. Declaring capacity is not proof of GPU placement.
|
|
60
|
+
|
|
61
|
+
For an authorized remote provider use `admission: "remote-authorized"`, an HTTPS endpoint and an explicit protocol (`ollama`, `openai-chat`, or `anthropic-messages`). Set `apiKeyEnv` to a host environment variable containing your own provider key when required. The configuration stores the variable name, and discovery never transmits the key. Endpoints with credentials in the URL, query strings or fragments are rejected.
|
|
62
|
+
|
|
63
|
+
## Run and use it
|
|
64
|
+
|
|
65
|
+
```sh
|
|
66
|
+
omnius mesh start --config /private/omnius-mesh/config.json
|
|
67
|
+
omnius mesh status --config /private/omnius-mesh/config.json
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Run the first command in an owned foreground process or your normal supervisor. It prints actual listen addresses and the loopback gateway URL. The gateway binds only `127.0.0.1` and requires the private generated bearer token. It rejects browser Origin requests; browser chat continues through its existing authenticated daemon.
|
|
71
|
+
|
|
72
|
+
Use `/endpoint mesh` to select the enabled default private mesh configuration. This resolves its exact loopback port and gateway token only after selection; typing suggestions never reads credentials. Then choose an advertised model with `/model`. An already configured custom mesh URL keeps its own credentials; the default token is never copied to another host. For a dedicated `--config` instance, explicitly configure its printed gateway URL, protocol `openai-chat` and its own private `gatewayToken`. Configure the browser daemon with the same endpoint. Main and child generation then use the same mesh route policy; the gateway never calls daemon `/v1/chat`.
|
|
73
|
+
|
|
74
|
+
For peers behind NAT, configure an operator-controlled reachable circuit relay and exchange the resulting full circuit multiaddress. Relay trust does not grant inference permission. No public relay is selected automatically.
|
|
75
|
+
|
|
76
|
+
`mesh status` shows bounded discovery, selection, admission and terminal metadata. It excludes prompts, completions, tool arguments and provider secrets. `/v1/models` is passive discovery and does not generate tokens. A missing model/capacity or a provider error is explicit.
|
|
77
|
+
|
|
78
|
+
Stop the owned mesh process with SIGINT/SIGTERM. It stops admission, cancels owned calls and closes its transport. Configuration changes, including trusted peers and offers, take effect after a controlled restart. Do not remove or edit a live ledger/ownership file. Abrupt process death can leave an ownership lock; verify the recorded owner has exited before explicit offline recovery. Never delete the ledger to recover a lock: its metadata prevents interrupted requests from executing again after restart.
|
|
79
|
+
|
|
80
|
+
The ledger reserves prompt-plus-maximum-output token estimates conservatively before dispatch and retains bounded request metadata. Failed/cancelled requests can still consume reservation; this favors respecting operator budgets. Once replay-history capacity is full, sponsorship fails closed until the operator performs a deliberate retention/reset procedure while stopped. Completed content is not stored in this ledger.
|
|
81
|
+
|
|
82
|
+
## Verification limits
|
|
83
|
+
|
|
84
|
+
Source acceptance uses genuine loopback peer transports and fixture providers, not CUDA or paid inference. These tests establish transport, framing and lifecycle behavior; they do not establish that any external provider will accept a request, that a GPU is correctly placed, or that all Tracker relay carriers have been ported.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"date": "2026-10-17",
|
|
4
|
+
"scope": "Source-only native endpoint provider argument completion",
|
|
5
|
+
"baseCommit": "3459b16e",
|
|
6
|
+
"sourceHashes": {
|
|
7
|
+
"packages/cli/src/tui/endpoint-completion.ts": "31ec68120175e75ee712afc142605edf8245bbeef58f810bdd9eac44c21d89ef",
|
|
8
|
+
"packages/cli/src/tui/interactive.ts": "4f71a143644ce62ae826e0f870f653a6b5babd5766fa534745058dc8a7608487",
|
|
9
|
+
"packages/cli/src/tui/status-bar.ts": "41da64db8ddc8276d5e646b4f0f9bc55667d709ce9166b4c16a4273848622e19",
|
|
10
|
+
"packages/cli/src/tui/command-registry.ts": "ca526f7abfa54e5eb31b015924346b3106ff609481f1229b9b7dc4117f80500e"
|
|
11
|
+
},
|
|
12
|
+
"verificationSourceHashes": {
|
|
13
|
+
"packages/cli/tests/endpoint-completion.test.ts": "bb845faf92dc376c9412f4629dd7549a31800f880a9fbb44eae923a198aa7c36",
|
|
14
|
+
"packages/cli/tests/native-endpoint-completion.test.ts": "3d2f053e03d15446cde83f2353679ec479a75b180f618ab537400acf66c3d956",
|
|
15
|
+
"packages/cli/tests/native-endpoint-completion.bun.ts": "782b9bef5be6c54d32895574bba24e6a2430d5ce8d560004104d611a611136eb"
|
|
16
|
+
},
|
|
17
|
+
"dependencyOwnership": {
|
|
18
|
+
"endpointPresetModule": "owned by terminal_inventory; copied for verification and excluded from patch",
|
|
19
|
+
"providerRegistry": "owned by terminal_inventory; copied for verification and excluded from patch"
|
|
20
|
+
},
|
|
21
|
+
"behavior": {
|
|
22
|
+
"choices": "all active canonical provider IDs and aliases, including claude; registry retirement filter omits Hyperbolic",
|
|
23
|
+
"credentialOrSavedUrlReads": false,
|
|
24
|
+
"nativeViewportRows": 4,
|
|
25
|
+
"choicesTruncatedToFive": false,
|
|
26
|
+
"selection": "Tab or pointer fills existing editor; only Enter submits; bare /endpoint Enter remains picker",
|
|
27
|
+
"cas": "existing NativeInput expectedText/expectedCursor authority preserved",
|
|
28
|
+
"noPresentationDocumentRebuild": true,
|
|
29
|
+
"ordinaryDraftsDoNotEnumerateProviders": true
|
|
30
|
+
},
|
|
31
|
+
"before": {
|
|
32
|
+
"source": "actual prior StatusBar._updateSuggestions body",
|
|
33
|
+
"bare": [
|
|
34
|
+
"endpoint"
|
|
35
|
+
],
|
|
36
|
+
"partial": []
|
|
37
|
+
},
|
|
38
|
+
"beforeBaselineSha256": "05cfe74c492540c14d015d6e1f64a82e886102188577998f3324e22e7c9b01d8",
|
|
39
|
+
"tests": {
|
|
40
|
+
"passed": 39,
|
|
41
|
+
"failed": 0,
|
|
42
|
+
"files": 5,
|
|
43
|
+
"sourceAliased": true,
|
|
44
|
+
"log": "/tmp/omnius-endpoint-completion-final-tests.json",
|
|
45
|
+
"logSha256": "dc6e2bc919fe1247daf2f655f45c58d376f9194688b3820ce7a4c2ff504883ac",
|
|
46
|
+
"nativeActualCoreChecks": 5,
|
|
47
|
+
"nativeSizes": [
|
|
48
|
+
[
|
|
49
|
+
60,
|
|
50
|
+
20
|
|
51
|
+
],
|
|
52
|
+
[
|
|
53
|
+
80,
|
|
54
|
+
24
|
|
55
|
+
],
|
|
56
|
+
[
|
|
57
|
+
100,
|
|
58
|
+
30
|
|
59
|
+
],
|
|
60
|
+
[
|
|
61
|
+
120,
|
|
62
|
+
36
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
160,
|
|
66
|
+
48
|
|
67
|
+
]
|
|
68
|
+
],
|
|
69
|
+
"coverage": [
|
|
70
|
+
"all registry names and aliases",
|
|
71
|
+
"retired provider exclusion",
|
|
72
|
+
"prefix and command alias matching",
|
|
73
|
+
"inert hostile URL/key/flag/line metadata",
|
|
74
|
+
"retained transcript identity",
|
|
75
|
+
"NativeInput CAS completion",
|
|
76
|
+
"actual native bare Enter/Tab/pointer/keyboard scrolling",
|
|
77
|
+
"continuous sidebar divider through voice/status/suggestion/scroll rows at five sizes"
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
"typecheck": {
|
|
81
|
+
"log": "/tmp/omnius-endpoint-completion-noemit.log",
|
|
82
|
+
"exitCode": 0,
|
|
83
|
+
"scope": "CLI + execution source with current source aliases, noEmit",
|
|
84
|
+
"diagnostics": 0
|
|
85
|
+
},
|
|
86
|
+
"safety": {
|
|
87
|
+
"providerRequests": 0,
|
|
88
|
+
"inferenceRequests": 0,
|
|
89
|
+
"modelLoads": 0,
|
|
90
|
+
"cudaActions": 0,
|
|
91
|
+
"serviceChanges": 0,
|
|
92
|
+
"sharedBuilds": 0,
|
|
93
|
+
"rootWrites": 0
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "omnius.endpoint-source-verification.v1",
|
|
3
|
+
"date": "2026-10-17",
|
|
4
|
+
"base": "8270d3b0",
|
|
5
|
+
"verifiedStagedTree": "e4d51863c35d795ae3ce86e9b08a55d4421bdc7e",
|
|
6
|
+
"sourceHashes": {
|
|
7
|
+
"packages/backend-vllm/src/normalizeUrl.ts": "129a9d6c327345648bf4f798c966887f6b8fb905adf6cc2991c6016e60ceba8c",
|
|
8
|
+
"packages/backend-vllm/src/providerRegistry.ts": "e2e7718c32626621f09f831ce8d9046229bb3de1bfd55c4bfb0ff0120fb7840d",
|
|
9
|
+
"packages/backend-vllm/tests/normalizeUrl.test.ts": "19a5a19b5d375782930201ed98ba4c0ff7665f9db49ed31790cd46cd8241ad4a",
|
|
10
|
+
"packages/backend-vllm/tests/providerRegistry.test.ts": "41647303c2d4f537bb0b1948aac52af9ca16f559425f68da15b49a92f7a7c818",
|
|
11
|
+
"packages/cli/src/onboarding/provider-setup.ts": "bd4696656f312c5165f36602fab113667c8f8cd394b17fc23948eba204d4116e",
|
|
12
|
+
"packages/cli/src/tui/command-registry.ts": "cc7d915787217b3dc97b2e6662f4755639dac34025e7ae9c8230a40be97b5320",
|
|
13
|
+
"packages/cli/src/tui/commands.ts": "1a918115ad9b3cc81d93fc9ad12a93817a38a175bcb21fac2d3de480d95c38e6",
|
|
14
|
+
"packages/cli/src/tui/endpoint-completion.ts": "31ec68120175e75ee712afc142605edf8245bbeef58f810bdd9eac44c21d89ef",
|
|
15
|
+
"packages/cli/src/tui/endpoint-preset.ts": "6392856ea9bc7d42c9a91a195dade5a8a377ed6b290abc8404786218cb086807",
|
|
16
|
+
"packages/cli/src/tui/interactive.ts": "3cfc351793ce41ec16315752ae2f48c9a1e5fc80b8f99a35b0017d2b42fec670",
|
|
17
|
+
"packages/cli/src/tui/mesh-endpoint.ts": "404464ba64fc057f3927bdbe441aa0a571556445dea4dfb2cec1f270f4738007",
|
|
18
|
+
"packages/cli/src/tui/model-picker.ts": "9cb71e7639e4c77cc5929cdfc1e717af35ebd535e72562a848959f83b8ee7974",
|
|
19
|
+
"packages/cli/src/tui/setup.ts": "1206e2ca35abb21d1e9054cf9b97d12333ccd53cb243d97f083f0b8b771d121a",
|
|
20
|
+
"packages/cli/src/tui/status-bar.ts": "41da64db8ddc8276d5e646b4f0f9bc55667d709ce9166b4c16a4273848622e19",
|
|
21
|
+
"packages/cli/src/tui/telegram-inference.ts": "e164349ccee453ecf89f99887ae94dbd1846389be3598500c4798d3a3ae23a23",
|
|
22
|
+
"packages/cli/tests/command-native-presentation.test.ts": "268edcfaeb63c17b57dcdefc6dac630b1511c5046f32e1a8c9d4ed86b2982998",
|
|
23
|
+
"packages/cli/tests/endpoint-catalog-transport.test.ts": "1e0475d61f8e364d9263b6a470e8c1836f8b8b121bbd21083b1501c548711945",
|
|
24
|
+
"packages/cli/tests/endpoint-completion.test.ts": "bb845faf92dc376c9412f4629dd7549a31800f880a9fbb44eae923a198aa7c36",
|
|
25
|
+
"packages/cli/tests/endpoint-mesh.test.ts": "2ff3bc017acfad780d7b1f38ea012b1f908104872f08d02a33f244cc3f1abb1d",
|
|
26
|
+
"packages/cli/tests/endpoint-preset-command.test.ts": "c0982bdc467b04d6b494eaf18f92dad2b8bf3ed5083b68edec0fbf54ff83d590",
|
|
27
|
+
"packages/cli/tests/endpoint-preset.test.ts": "6366f7bc3e3c747a78ad1f106a7a9d2e7cc44f0d21f2891624b24e31f83f83c9",
|
|
28
|
+
"packages/cli/tests/native-endpoint-completion.bun.ts": "782b9bef5be6c54d32895574bba24e6a2430d5ce8d560004104d611a611136eb",
|
|
29
|
+
"packages/cli/tests/native-endpoint-completion.test.ts": "3d2f053e03d15446cde83f2353679ec479a75b180f618ab537400acf66c3d956",
|
|
30
|
+
"packages/cli/tests/onboarding-provider-setup.test.ts": "179d7a61797b583ce88a2e1a70a57b4ee77b122a79177a6c047b3ae1982697cf"
|
|
31
|
+
},
|
|
32
|
+
"uniquePassingTests": 314,
|
|
33
|
+
"failedTests": 0,
|
|
34
|
+
"gates": [
|
|
35
|
+
{
|
|
36
|
+
"name": "cli",
|
|
37
|
+
"passed": 243,
|
|
38
|
+
"failed": 0,
|
|
39
|
+
"selectedOut": 0,
|
|
40
|
+
"reportSha256": "219d79979dda915bbc054b144e261ad4116965e86f65351bc62f98ced20d4a2d",
|
|
41
|
+
"files": [
|
|
42
|
+
{
|
|
43
|
+
"file": "builtin-free-models.test.ts",
|
|
44
|
+
"passed": 15
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"file": "endpoint-catalog-transport.test.ts",
|
|
48
|
+
"passed": 43
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"file": "endpoint-completion.test.ts",
|
|
52
|
+
"passed": 5
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"file": "endpoint-history-redaction.test.ts",
|
|
56
|
+
"passed": 1
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"file": "endpoint-mesh.test.ts",
|
|
60
|
+
"passed": 9
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"file": "endpoint-model-policy.test.ts",
|
|
64
|
+
"passed": 2
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"file": "endpoint-preset-command.test.ts",
|
|
68
|
+
"passed": 22
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"file": "endpoint-preset.test.ts",
|
|
72
|
+
"passed": 8
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"file": "endpoint-provider-picker.test.ts",
|
|
76
|
+
"passed": 6
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"file": "mesh-backend.test.ts",
|
|
80
|
+
"passed": 42
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"file": "mesh-gateway.test.ts",
|
|
84
|
+
"passed": 15
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"file": "model-availability.test.ts",
|
|
88
|
+
"passed": 6
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"file": "model-picker-context-telemetry.test.ts",
|
|
92
|
+
"passed": 10
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"file": "native-endpoint-completion.test.ts",
|
|
96
|
+
"passed": 1
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"file": "onboarding-provider-setup.test.ts",
|
|
100
|
+
"passed": 14
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"file": "web-chat-transport-lifecycle.test.ts",
|
|
104
|
+
"passed": 31
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"file": "web-ui-client-runtime.test.ts",
|
|
108
|
+
"passed": 4
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"file": "web-ui-script.test.ts",
|
|
112
|
+
"passed": 9
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"name": "backend",
|
|
118
|
+
"passed": 62,
|
|
119
|
+
"failed": 0,
|
|
120
|
+
"selectedOut": 0,
|
|
121
|
+
"reportSha256": "ab2cdfc40881165dfea762bfcfe6b49906601b5cc2de5101bd644cc484506d81",
|
|
122
|
+
"files": [
|
|
123
|
+
{
|
|
124
|
+
"file": "normalizeUrl.test.ts",
|
|
125
|
+
"passed": 44
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"file": "providerRegistry.test.ts",
|
|
129
|
+
"passed": 18
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"name": "native",
|
|
135
|
+
"passed": 9,
|
|
136
|
+
"failed": 0,
|
|
137
|
+
"selectedOut": 6,
|
|
138
|
+
"reportSha256": "1ce76c1aafde49f4f8816be2cfb357f7df4acead2228041bab2a88166fddbbc1",
|
|
139
|
+
"files": [
|
|
140
|
+
{
|
|
141
|
+
"file": "command-native-presentation.test.ts",
|
|
142
|
+
"passed": 9
|
|
143
|
+
}
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"nativeSubscenarios": 5,
|
|
148
|
+
"nativeSizes": [
|
|
149
|
+
"60x20",
|
|
150
|
+
"80x24",
|
|
151
|
+
"100x30",
|
|
152
|
+
"120x36",
|
|
153
|
+
"160x48"
|
|
154
|
+
],
|
|
155
|
+
"noEmit": {
|
|
156
|
+
"passed": true,
|
|
157
|
+
"scope": "All CLI and execution source, importing backend-vllm/orchestrator source with explicit aliases; no build/emit"
|
|
158
|
+
},
|
|
159
|
+
"independentReview": [
|
|
160
|
+
"Captured catalog protocol/path/auth and subsequent /model use",
|
|
161
|
+
"Exact credential/pool scopes and cancelled secret/protocol input",
|
|
162
|
+
"Custom Ollama prefix retained for metadata",
|
|
163
|
+
"Remote runtime ports cannot silently select catalog-first models",
|
|
164
|
+
"Authenticated catalog capabilities retained in endpoint and model status updates"
|
|
165
|
+
],
|
|
166
|
+
"limits": [
|
|
167
|
+
"Catalog/parser/provider tests use HTTP fixtures; no provider access claim",
|
|
168
|
+
"Actual OpenTUI fixtures exercise keyboard, pointer, viewport scrolling and divider continuity without inference",
|
|
169
|
+
"Six unrelated native presentation cases outside the selected subset, including independently confirmed pre-existing recovered-session header assertion mismatch, were not selected",
|
|
170
|
+
"Mesh core has separate previously committed verification; this gate additionally reruns42 origin backend and15 gateway cases",
|
|
171
|
+
"Source only: zero live inference, model loads, new network/provider probes, service changes, shared builds or publication",
|
|
172
|
+
"Current genuine OpenCode access controls still return403; endpoint shortcuts do not alter provider access controls"
|
|
173
|
+
],
|
|
174
|
+
"reproducibility": "Staged source was archived before checks; this receipt and later planning delivery metadata do not change the checked source hashes."
|
|
175
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "omnius.expanded-variant-repair-verification.v1",
|
|
3
|
+
"date": "2026-10-17",
|
|
4
|
+
"scope": "Source-only repair endpoint binding, honest diagnostic outcomes and independent loopback endpoint cooldown. Startup transcript/daemon diagnostic presentation is a separate integration owned by the parent/native frontend agent.",
|
|
5
|
+
"baseline": {
|
|
6
|
+
"gitHead": "56fceb0070166eb92e751d490d82295757de3fba",
|
|
7
|
+
"sourceSha256": "c592ec81fd9f012604d928e6f2eedb8264cda0f2ada5f9a3dabc2e538cf7a632",
|
|
8
|
+
"beforeEvidence": [
|
|
9
|
+
"createExpandedVariantNamedAsync accepted no backendUrl, invoked a shell command and inherited OLLAMA_HOST/default despite reading metadata from a selected endpoint.",
|
|
10
|
+
"Failed child creation was caught as null; stale-context, missing-tools and canonical-alias repair branches could count it as unchanged.",
|
|
11
|
+
"readExpandedVariantState returned null for HTTP, invalid JSON and transport failures; sweep collapsed these with policy/base/create failures into one inaccurate startup warning."
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"ownedPaths": [
|
|
15
|
+
"packages/cli/src/tui/setup.ts",
|
|
16
|
+
"packages/cli/src/tui/expanded-variant-sweep.ts",
|
|
17
|
+
"packages/cli/tests/ollama-broker-model-identity.test.ts",
|
|
18
|
+
"packages/cli/tests/expanded-variant-repair.test.ts",
|
|
19
|
+
"packages/cli/tests/expanded-variant-sweep.test.ts",
|
|
20
|
+
"docs/work-orders/evidence/expanded-variant-repair-20261017.json"
|
|
21
|
+
],
|
|
22
|
+
"sourceHashes": {
|
|
23
|
+
"packages/cli/src/tui/setup.ts": "e64691d02455c3ff1b691f3d4be4467e39bfbee3718fac85be248f8e3a3649d4",
|
|
24
|
+
"packages/cli/src/tui/expanded-variant-sweep.ts": "65cdb17f9aaedf7aba27481a7818eb6251bb2192d0766dd2c4337813f30e13cb",
|
|
25
|
+
"packages/cli/tests/ollama-broker-model-identity.test.ts": "927b0b76d9e588c19b7afa68ab488c9b428611d6d272b86e8f175d14dd058566",
|
|
26
|
+
"packages/cli/tests/expanded-variant-repair.test.ts": "dfb2f96beed5eac75759a022b88c3733ef469bb6386f2aa33979122a3c721cc1",
|
|
27
|
+
"packages/cli/tests/expanded-variant-sweep.test.ts": "a2bd245f0d10560950b66b56e5270f110210002d4f44a89e34ccf1dce20bee1e"
|
|
28
|
+
},
|
|
29
|
+
"verification": {
|
|
30
|
+
"result": "PASS",
|
|
31
|
+
"testFiles": 3,
|
|
32
|
+
"tests": 58,
|
|
33
|
+
"newCases": 36,
|
|
34
|
+
"caseCounts": {
|
|
35
|
+
"packages/cli/tests/ollama-broker-model-identity.test.ts": 22,
|
|
36
|
+
"packages/cli/tests/expanded-variant-repair.test.ts": 17,
|
|
37
|
+
"packages/cli/tests/expanded-variant-sweep.test.ts": 19
|
|
38
|
+
},
|
|
39
|
+
"counting": "One complete focused batch; 22 existing broker identity cases plus 17 new repair cases and 19 new endpoint/cadence cases. Do not add earlier overlapping test batches.",
|
|
40
|
+
"testLog": "/tmp/omnius-expanded-repair-final-tests.log",
|
|
41
|
+
"testLogSha256": "880733870231877e568a95226633f65911384466228b12f2975d281b9c43bc0d",
|
|
42
|
+
"testCommand": "pnpm exec vitest run tests/expanded-variant-repair.test.ts tests/expanded-variant-sweep.test.ts tests/ollama-broker-model-identity.test.ts --maxWorkers=2 --minWorkers=1 --reporter=verbose",
|
|
43
|
+
"typecheck": {
|
|
44
|
+
"result": "PASS",
|
|
45
|
+
"diagnostics": 0,
|
|
46
|
+
"log": "/tmp/omnius-expanded-repair-final-typecheck.log",
|
|
47
|
+
"command": "pnpm exec tsc -p tsconfig.json --noEmit --incremental false --composite false"
|
|
48
|
+
},
|
|
49
|
+
"sourcePatch": "/tmp/omnius-expanded-repair-source.patch",
|
|
50
|
+
"sourcePatchSha256": "cfd49415516843e855e51f3a2eab1b102a53ee27b66c7cf59d30d370fab41194",
|
|
51
|
+
"rootApplyCheck": "PASS before integration",
|
|
52
|
+
"scopedDiffCheck": "PASS"
|
|
53
|
+
},
|
|
54
|
+
"contract": {
|
|
55
|
+
"creation": "Every async wrapper-create caller explicitly passes the requested endpoint. execFile invokes ollama with an argument vector; the normalized HTTP(S) endpoint overrides OLLAMA_HOST only in a copied child environment. Global environment is unchanged. Credentials/query/fragment URLs are refused.",
|
|
56
|
+
"failureReasons": [
|
|
57
|
+
"metadata_http",
|
|
58
|
+
"metadata_invalid",
|
|
59
|
+
"metadata_unavailable",
|
|
60
|
+
"missing_base",
|
|
61
|
+
"broker_policy",
|
|
62
|
+
"create_failed"
|
|
63
|
+
],
|
|
64
|
+
"failureDetails": "Fixed host-owned diagnostic text and optional numeric HTTP status; no raw model response, thrown exception text, subprocess stdout/stderr or inherited credentials. A missing friendly base must be installed in the selected catalog before a repair is attempted.",
|
|
65
|
+
"success": "Only a completed creation enters repaired. Required failed creates enter failed, not unchanged. Broker-managed aliases remain untouched.",
|
|
66
|
+
"metadata": "The initial validated wrapper state also supplies the tools-capability decision, avoiding a redundant unchecked wrapper-state probe. A later authoritative read failure remains a typed failure.",
|
|
67
|
+
"scheduler": "createExpandedVariantSweepScheduler(scan,{ttlMs?,now?}).run(backendType,url) returns one result Promise for a real scan or null for invalid/non-Ollama/nonloopback, in-flight or cooldown-suppressed repeats. Per-normalized-endpoint state is independent. Default cooldown is five minutes after success or rejection completes.",
|
|
68
|
+
"loopback": "Exact localhost, 127.0.0.1 and IPv6 ::1 only, parsed as URL host; username/password, query, fragment, wildcard bind address and remote substring tricks are excluded.",
|
|
69
|
+
"retention": "At most 32 completed endpoint entries; active scans retain their guards until settlement. Cadence is per scheduler instance, not a cross-process persistent lock."
|
|
70
|
+
},
|
|
71
|
+
"coveredBehaviors": [
|
|
72
|
+
"Selected custom-port/basepath overrides unrelated inherited OLLAMA_HOST for stale-context, missing-tools and canonical-alias repairs.",
|
|
73
|
+
"Public async new-wrapper creation uses the same endpoint binding.",
|
|
74
|
+
"Failed creation in all three repair branches does not masquerade as unchanged.",
|
|
75
|
+
"HTTP failure, invalid JSON, wrong/empty metadata structure and unavailable metadata remain distinct from missing base and broker refusal.",
|
|
76
|
+
"Lost/missing friendly bases never trigger implicit registry lookup or create.",
|
|
77
|
+
"Unchanged valid wrapper yields unchanged without any create call.",
|
|
78
|
+
"Uppercase/trailing-slash/default-port normalization, IPv6 loopback and rejection of deceptive remote URLs.",
|
|
79
|
+
"Duplicate in-flight suppression, independent new endpoints, cooldown after completion, failed-scan retry after cooldown and synchronous callback throw recovery."
|
|
80
|
+
],
|
|
81
|
+
"verificationLimits": [
|
|
82
|
+
"All fetch calls and exec/execFile/spawn entry points used by the new fixtures are mocked or rejected. Synthetic memory/device metadata does not claim actual GPU placement.",
|
|
83
|
+
"No actual model creation, repair, model loading, inference, network request, CUDA workload, service change, shared build or publication was performed.",
|
|
84
|
+
"The existing omnius-expanded-models.test.ts interactive source-string expectations are owned by the native frontend integration agent and are excluded from this patch; the first exploratory batch exposed their stale pre-existing interactive naming assertion.",
|
|
85
|
+
"This change retains existing per-request metadata deadlines and sequential variant traversal. It does not introduce an overall sweep deadline or cross-process scheduling.",
|
|
86
|
+
"Read-only local filesystem discovery found 20 wrapper manifests with valid JSON/present referenced blobs and 13 non-reversible base names, but did not execute the sweep or establish the specific seven runtime failures."
|
|
87
|
+
]
|
|
88
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"date": "2026-10-17",
|
|
3
|
+
"sourceOnly": true,
|
|
4
|
+
"stagedTree": "f63386d8c55a5702629454fac22dc930a0a14c9b",
|
|
5
|
+
"sourceChecks": {
|
|
6
|
+
"passed": 240,
|
|
7
|
+
"failed": 0,
|
|
8
|
+
"typecheck": "passed",
|
|
9
|
+
"mandatoryFrontendSuitesIncluded": true
|
|
10
|
+
},
|
|
11
|
+
"transportChecks": {
|
|
12
|
+
"unique": 17,
|
|
13
|
+
"existingLockedGraph": "17 passed",
|
|
14
|
+
"freshNpmGraph": "17 passed",
|
|
15
|
+
"minimumNode": "22.23.3",
|
|
16
|
+
"realCircuitRelay": true,
|
|
17
|
+
"relayHopPromptPlaintextAbsent": true,
|
|
18
|
+
"wssCertificateVerification": true,
|
|
19
|
+
"backpressureAndStop": true
|
|
20
|
+
},
|
|
21
|
+
"integrationChecks": {
|
|
22
|
+
"actualProductionAdapterToGatewayToNoiseToSponsor": true,
|
|
23
|
+
"fixtureProvidersOnly": true,
|
|
24
|
+
"twoSponsorsConcurrent": true,
|
|
25
|
+
"secondCallToBusySponsorWithFreeSlot": true,
|
|
26
|
+
"denialDoesNotDispatchToAnotherSponsor": true,
|
|
27
|
+
"originOnlyConfiguredRuntime": true,
|
|
28
|
+
"noRealInference": true
|
|
29
|
+
},
|
|
30
|
+
"reviewRepairs": [
|
|
31
|
+
"Preserve streamed401/403/429 status including after partial output",
|
|
32
|
+
"Do not double-count accepted local reservations",
|
|
33
|
+
"Allow same-origin main/child concurrency within actual available slots",
|
|
34
|
+
"Project cross-model per-origin capacity consistently",
|
|
35
|
+
"Align validated configuration and runtime limits",
|
|
36
|
+
"Clean transport after sponsor constructor/startup failure"
|
|
37
|
+
],
|
|
38
|
+
"limits": [
|
|
39
|
+
"No GPU or paid provider acceptance test",
|
|
40
|
+
"Provider and selected inference sponsor receive plaintext; relays see metadata",
|
|
41
|
+
"Other Tracker relay carrier adapters are inventoried only",
|
|
42
|
+
"Trusted peers/endpoints require explicit operator configuration",
|
|
43
|
+
"Crash ownership lock and saturated dedup ledger fail closed"
|
|
44
|
+
],
|
|
45
|
+
"patchSha256": "f5364f8c54183bb5ce22d32dede030c8cc3a199654b1a732c8f53255118ca48f"
|
|
46
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "source-only authenticated libp2p transport and private installation verification",
|
|
4
|
+
"date": "2026-10-17",
|
|
5
|
+
"node": "v22.23.3",
|
|
6
|
+
"baseCommit": "395f010d",
|
|
7
|
+
"protocol": "/omnius/sponsored-inference/1.0.0",
|
|
8
|
+
"sourceHashes": {
|
|
9
|
+
"packages/cli/src/mesh/libp2p-transport.ts": "be06968ef6987f072289179c4d670078a531d1c30ccd3ec915678b56895fc70b",
|
|
10
|
+
"packages/cli/package.json": "f193fc1f66d41c1a1c46aaf5b5ea93496d6c467e436f044547247b11b612f0f4",
|
|
11
|
+
"scripts/build-publish.mjs": "0cbdad4dc5baed907b650e7f23bd4523e8c4b5b42ce815088734ce82c6dd8e48"
|
|
12
|
+
},
|
|
13
|
+
"verificationOnlyContract": {
|
|
14
|
+
"path": "packages/cli/src/mesh/contracts.ts",
|
|
15
|
+
"sha256": "e9e44c3d02e0f5abdcee706993ba00f5491c82f1614dab793b8694e6a10ad682",
|
|
16
|
+
"includedInPatch": false
|
|
17
|
+
},
|
|
18
|
+
"tests": {
|
|
19
|
+
"uniqueCases": 17,
|
|
20
|
+
"file": "packages/cli/tests/mesh-libp2p-transport.test.ts",
|
|
21
|
+
"sha256": "291efb51ed8e9535d3a1cfeb08a643452adf4a64c73a4e1d5f20d69860bbc18b",
|
|
22
|
+
"runs": [
|
|
23
|
+
{
|
|
24
|
+
"graph": "locked",
|
|
25
|
+
"passed": 17,
|
|
26
|
+
"failed": 0,
|
|
27
|
+
"log": "/tmp/omnius-libp2p-mesh-locked-tests.json",
|
|
28
|
+
"sha256": "71ad0723357b22d1d77efd6e4ede6edc7a9daa9faf9e86a7dc8360613d149cc9"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"graph": "npm",
|
|
32
|
+
"passed": 17,
|
|
33
|
+
"failed": 0,
|
|
34
|
+
"log": "/tmp/omnius-libp2p-mesh-npm-tests.json",
|
|
35
|
+
"sha256": "afc9f75460ef833d0535fcf6b2fab7bb554877b2b44963fd2f52bc2a292cba52"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"cases": [
|
|
39
|
+
"creates one private identity atomically across concurrent initializers without starting a listener",
|
|
40
|
+
"refuses corrupted, publicly readable and symlinked identities without silently replacing them",
|
|
41
|
+
"exchanges ordered Unicode frames over real TCP Noise/Yamux and replies after peer half-close",
|
|
42
|
+
"rejects untrusted remote identities and mismatched dial targets before application admission",
|
|
43
|
+
"authenticates a pinned peer even through a local TCP forwarder, then rejects modified ciphertext",
|
|
44
|
+
"rejects oversized length from an authenticated peer",
|
|
45
|
+
"rejects invalid JSON from an authenticated peer",
|
|
46
|
+
"rejects invalid UTF-8 from an authenticated peer",
|
|
47
|
+
"rejects truncated payload from an authenticated peer",
|
|
48
|
+
"accepts a frame split across many writes and coalesced frames without losing boundaries",
|
|
49
|
+
"bounds outgoing frames and queue memory while retaining valid ordered traffic",
|
|
50
|
+
"applies real stream backpressure and aborts a blocked large write on operator Stop",
|
|
51
|
+
"aborts pending receives promptly on caller cancellation and transport Stop",
|
|
52
|
+
"bounds idle reads and refuses public/unconfigured relay addresses",
|
|
53
|
+
"exchanges end-to-end Noise frames through a real relay while the relay sees ciphertext and endpoint identities remain pinned",
|
|
54
|
+
"scopes legacy npm pins without changing unrelated or nested consumer overrides",
|
|
55
|
+
"uses WSS with normal CA verification and pinned Noise peer identity on Node22+"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"typecheck": {
|
|
59
|
+
"mode": "strict NodeNext noEmit, actual transport source + integration tests",
|
|
60
|
+
"diagnostics": 0,
|
|
61
|
+
"graphs": [
|
|
62
|
+
"existing workspace locked dependencies",
|
|
63
|
+
"fresh private npm installed dependencies"
|
|
64
|
+
],
|
|
65
|
+
"log": "/tmp/omnius-libp2p-mesh-noemit-final.log",
|
|
66
|
+
"latestParentContractCompatible": true
|
|
67
|
+
},
|
|
68
|
+
"privateNpmInstall": {
|
|
69
|
+
"directRuntimeDependencies": {
|
|
70
|
+
"libp2p": "3.3.0",
|
|
71
|
+
"@libp2p/crypto": "5.1.18",
|
|
72
|
+
"@libp2p/peer-id": "6.0.9",
|
|
73
|
+
"@libp2p/tcp": "11.0.19",
|
|
74
|
+
"@libp2p/websockets": "10.1.12",
|
|
75
|
+
"@libp2p/circuit-relay-v2": "4.2.4",
|
|
76
|
+
"@libp2p/identify": "4.1.5",
|
|
77
|
+
"@chainsafe/libp2p-noise": "17.0.0",
|
|
78
|
+
"@chainsafe/libp2p-yamux": "8.0.1",
|
|
79
|
+
"@multiformats/multiaddr": "13.0.3"
|
|
80
|
+
},
|
|
81
|
+
"installedPackages": 135,
|
|
82
|
+
"scripts": "ignored",
|
|
83
|
+
"manifest": "synthetic private mesh runtime dependencies plus actual release overrides scoped by production helper",
|
|
84
|
+
"shrinkwrapInput": "actual existing publish/npm-shrinkwrap.json (stale, reconciled by npm)",
|
|
85
|
+
"shrinkwrapInputSha256": "c5b519f308ba4b490916b33defe49a97a87960b312afd53df43519e139b68c11",
|
|
86
|
+
"newShrinkwrapSha256": "3511c03c5b1ed9799020ccfe3ef279a6e8c92f7174b24e2e58517e74dbdfd797",
|
|
87
|
+
"evidence": [
|
|
88
|
+
"all17 actual transport tests pass against fresh npm packages",
|
|
89
|
+
"separate forced circuit-only Node22 exchange passes"
|
|
90
|
+
],
|
|
91
|
+
"legacyConsumerRuntimeInstalled": false,
|
|
92
|
+
"limitations": "Nexus/Helia nested version preservation is asserted by focused manifest policy test; full release install belongs to parent packaging gate."
|
|
93
|
+
},
|
|
94
|
+
"transport": {
|
|
95
|
+
"identity": "standard Ed25519 private-key protobuf; private owner directory0700/file0600; no listener during load/create; atomic no-clobber concurrent initialization",
|
|
96
|
+
"encryption": "standard libp2p Noise + Yamux; no copied Tracker encryption or source",
|
|
97
|
+
"peerTrust": "pinned authenticated remotePeer; exact dial target; configured relay identity alone does not authorize application access",
|
|
98
|
+
"relayProof": "real circuit-v2 reservation and forced circuit-only payload; relay HOP stream observed after outer Noise decryption, prompt remains absent; endpoint IDs remain origin and destination",
|
|
99
|
+
"wssProof": "real TLS listener with generated local CA supplied by NODE_EXTRA_CA_CERTS in isolated child; no disabled certificate verification",
|
|
100
|
+
"bounds": {
|
|
101
|
+
"frameBytes": 8388608,
|
|
102
|
+
"applicationQueuedFrames": 8,
|
|
103
|
+
"applicationQueuedSendBytes": 16777224,
|
|
104
|
+
"pausedNativeReadBytes": 16777224,
|
|
105
|
+
"applicationReadBytes": 16777224,
|
|
106
|
+
"channels": 64,
|
|
107
|
+
"connections": 32,
|
|
108
|
+
"dialQueue": 16,
|
|
109
|
+
"parallelDials": 4,
|
|
110
|
+
"defaultDialMs": 15000,
|
|
111
|
+
"defaultIdleMs": 120000
|
|
112
|
+
},
|
|
113
|
+
"readBackpressure": "synchronous pause-on-message + bounded owned parser; convenience async iterator deliberately avoided because its pushable can drain beyond native cap",
|
|
114
|
+
"cancellation": "caller AbortSignal and Stop abort active receive/send/dial; actual4MiB backpressured send test"
|
|
115
|
+
},
|
|
116
|
+
"lockPatch": {
|
|
117
|
+
"path": "/tmp/omnius-libp2p-mesh-lock-importers.patch",
|
|
118
|
+
"sha256": "2be41bd58915449e7e5800ed9c3e6ce4b11c57edfd9e310f675ac863bb151b91",
|
|
119
|
+
"addedImporterLines": 30,
|
|
120
|
+
"transitiveVersionChanges": 0,
|
|
121
|
+
"rootLockChanged": false
|
|
122
|
+
},
|
|
123
|
+
"safety": {
|
|
124
|
+
"externalPeerConnections": 0,
|
|
125
|
+
"publicRendezvous": false,
|
|
126
|
+
"inferenceRequests": 0,
|
|
127
|
+
"modelLoads": 0,
|
|
128
|
+
"cudaActions": 0,
|
|
129
|
+
"serviceChanges": 0,
|
|
130
|
+
"sharedBuilds": 0,
|
|
131
|
+
"rootSourceWrites": 0,
|
|
132
|
+
"publishDirectoryWrites": 0,
|
|
133
|
+
"trackerSourceCopied": false
|
|
134
|
+
},
|
|
135
|
+
"primaryReferences": [
|
|
136
|
+
"https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.Libp2pInit.html",
|
|
137
|
+
"https://libp2p.io/docs/circuit-relay/",
|
|
138
|
+
"https://github.com/libp2p/specs/blob/master/noise/README.md"
|
|
139
|
+
],
|
|
140
|
+
"beforeAfter": {
|
|
141
|
+
"fixture": "actual4MiB send to a trusted peer whose application does not receive",
|
|
142
|
+
"before": {
|
|
143
|
+
"sourceSha256": "a9a84ad1d26530917a50f6d350bb06de673728bf824c9b815d850eb12ef1bd61",
|
|
144
|
+
"testFailures": 1,
|
|
145
|
+
"skippedOtherTests": 16,
|
|
146
|
+
"observation": "write settles before50ms because convenience iterator/native stream never pauses at application boundary",
|
|
147
|
+
"log": "/tmp/omnius-libp2p-mesh-before-pressure.json",
|
|
148
|
+
"logSha256": "f72f038891aba9ab604ba42437d4eb2ef8efc4f353ebbf0655390fb5b90a4d03"
|
|
149
|
+
},
|
|
150
|
+
"after": {
|
|
151
|
+
"observation": "write remains backpressured after50ms; explicit AbortSignal cancels it promptly",
|
|
152
|
+
"testPasses": 17,
|
|
153
|
+
"testFailures": 0
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|