diff --git a/.quixos-subtree-source.json b/.quixos-subtree-source.json index cbc3f10..7e442cb 100644 --- a/.quixos-subtree-source.json +++ b/.quixos-subtree-source.json @@ -1,7 +1,7 @@ { "version": 1, "sourceRepo": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos", - "sourceCommit": "98cd7bc237027368fd2c77f294f59281ef3df160", + "sourceCommit": "286ada5419c4fc2184b387cea4715fae1a74bde5", "sourcePath": "quixos-instance/quixos-nix-helpers", "exportName": "quixos-nix-helpers", "mirrorRemote": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git" diff --git a/PORTABLE_ARTIFACTS.md b/PORTABLE_ARTIFACTS.md index bd9b03d..12fa668 100644 --- a/PORTABLE_ARTIFACTS.md +++ b/PORTABLE_ARTIFACTS.md @@ -1,5 +1,11 @@ # Checked capability and component artifacts +This is the **current helper/output format**, not the core package abstraction. +See [the architecture](../../docs/ARCHITECTURE.md) and +[current gaps](../../docs/ARCHITECTURE_STATUS.md). In particular, the universal +artifact inventory and component-only omission of a server are implementation +gaps to resolve, not requirements for arbitrary package servers. + `mkCaminoArtifacts` is the fresh package builder. It regenerates candidate bindings, typechecks the entry's dependency closure, bundles declared targets, generates a process service when requested, and emits content manifests and @@ -105,7 +111,7 @@ and supplies an explicit SDK for value codecs, identities and declared graph por service = { restricted = true; limits = { - deadlineMs = 4000; + deadlineMs = 10000; maxBytes = 1048576; maxPortCalls = 1000; maxQueued = 8; @@ -122,6 +128,14 @@ invocation identity; authored code cannot choose another frame or workspace. Native graph grants and transaction commit remain enforced by Camino outside the guest. Initialization and synchronous loops are subject to the same deadline. +The default root/Package Invocation wall deadline is 10 seconds. The separate +root CPU allowance remains at most 4 CPU seconds; extra wall time accommodates +queueing and graph-port waits. Ordinary graph database transactions and idle +transactions allow 30 seconds, and ordinary client HTTP requests allow 45 seconds +so server failures can be returned. Nested calls inherit the remaining root +budget; explicit smaller limits still apply. Restore/activation jobs retain their +separate budgets. These defaults are starting limits, not latency targets. + Direct network access, native filesystem imports, ambient clock and entropy, parent environment credentials, and unlisted modules are denied. Explicit dates, `Intl.Segmenter`, deterministic hashes and normal JavaScript computation remain diff --git a/restricted-execution/service.mjs b/restricted-execution/service.mjs index 9edc8bf..a30d290 100644 --- a/restricted-execution/service.mjs +++ b/restricted-execution/service.mjs @@ -108,7 +108,7 @@ export async function serveRestrictedRegistry(config, io = process) { const limits = { maxBytes: config.maxBytes ?? 1024 * 1024, maxPortCalls: config.maxPortCalls ?? 1000, - deadlineMs: config.deadlineMs ?? 4000, + deadlineMs: config.deadlineMs ?? 10000, maxQueued: config.maxQueued ?? 8, maxActive: config.maxActive ?? 2, maxNested: config.maxNested ?? 4,