Commit Graph
238 Commits
Author SHA1 Message Date
jschoubben efd3d224e1 Put takes the body's exact size and always sends it as Content-Length; refuse a link under one second (issue 1592)
mesh/merge-gate head efd3d224e131 merged into trunk c9f978d3308b — pass, with a note: builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus …
mesh/repo-check head efd3d224e131 merged into trunk c9f978d3308b — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript)…
mesh/delivery delivered
2026-10-21 11:22:18 +02:00
jschoubben 081dc616ff Add objectlink: one helper signs a short store link and streams a document over it with a size limit and a digest (issue 1592) 2026-10-21 11:18:15 +02:00
jschoubben b7b81e040f Carry shares on a requirement of s3-bucket to the provider's grant, so a bucket's other users are named in the manifest (issue 1591) 2026-10-21 11:15:49 +02:00
mesh-tools 3558903ff9 Merge pull request 'Read a lowercase name with digits as a name, not a secret (issue 1439)' (#52) from feat/1439-name-runs into main 2026-10-21 08:07:43 +00:00
jochen 7bf4a8053a Read a lowercase name with digits as a name, not a secret (issue 1439)
mesh/repo-check head 7bf4a8053a49 merged into trunk 36d6f7745c8d — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript)…
mesh/merge-gate head 7bf4a8053a49 merged into trunk 36d6f7745c8d — pass: group feat/1439-name-runs composed: every machine composes with the change as it d…
mesh/delivery delivered
mesh/delivery-group group feat/1439-name-runs delivered: every member is delivered
mesh-config refused to propose mesh-issues' owners because CheckSecret took
modules/asus-zephyrus-g14, i3status-rust and powerlevel10k for random strings: a run with a
digit in it was judged whole. A run of lowercase letters and digits in short pieces between
-, _ and / is now judged piece by piece; a capital letter or a piece of 20 or more is judged
whole as before.
2026-10-21 09:55:04 +02:00
mesh-tools 36d6f7745c Merge pull request 'The build modules' shared steps: the forge key keeper, a call to a named machine, long steps on a key, the toolchain guard, fetching a commit, packing an artifact (design 47 R4c-3)' (#51) from feat/r4c3-sdk into main 2026-10-20 20:46:26 +00:00
mesh-tools 1572e50e0e Give a build step's commands only the environment its caller names (issue 1497)
mesh/merge-gate head 1572e50e0ef0 merged into trunk 4024909a2960 — pass, with a note: builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus …
mesh/repo-check head 1572e50e0ef0 merged into trunk 4024909a2960 — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript)…
mesh/delivery delivered
2026-10-20 20:39:45 +00:00
mesh-tools 51e517f055 Restore the full tar stream of Pack's golden (issue 1479) 2026-10-20 20:39:23 +00:00
mesh-tools df9a2bba8c Add the build agent's uncompressed tar stream as Pack's golden (issue 1479) 2026-10-20 20:38:59 +00:00
mesh-tools 8406bb3a77 Compare Pack's tar stream with the build agent's, since gzip's bytes differ between Go versions (issue 1479) 2026-10-20 20:38:47 +00:00
mesh-tools 0b990a9c31 Name the step's deadline, not a bound never set, when an unbounded command is cut (issue 1497) 2026-10-20 20:09:32 +00:00
mesh-tools 9e296295c0 Let a long step's exec runner be bound by its context alone (issue 1497), part 8 of 8 2026-10-20 20:07:15 +00:00
mesh-tools 512472c02a Pack a build's output like the build agent and keep the steps state's shape (issues 1471, 1479), part 7 of 7 2026-10-20 20:06:48 +00:00
mesh-tools a776ca525a Test the fetch of one commit over SSH (issue 1474), part 6 of 7 2026-10-20 20:06:12 +00:00
mesh-tools 43b6361d09 Test the step runner and the toolchain guard (issues 1471, 1473), part 5 of 7 2026-10-20 20:05:49 +00:00
mesh-tools 927852fda8 Lay out a build module's long steps, guard its toolchain and fetch one commit over SSH (issues 1471, 1473, 1474), part 4 of 7 2026-10-20 20:05:21 +00:00
mesh-tools 4d4112a008 Call a module's tool or a seat verb on a named machine (issue 1470), part 3 of 6 2026-10-20 20:04:47 +00:00
mesh-tools a51dc144a1 Test the key keeper (issue 1469), part 2 of 6 2026-10-20 20:04:27 +00:00
mesh-tools c5705ed551 Move the key keeper into mesh-sdk and add the build modules' shared steps (issues 1469, 1470, 1471, 1473, 1474, 1479), part 1 of 4 2026-10-20 20:03:17 +00:00
mesh-tools 4024909a29 Merge pull request 'The forge messages carry manifests and lock hashes, a module keeps its new-form inputs, and the build modules' toolchain keys get a layout (design 47 R4c-1, issues 1442, 1443)' (#50) from feat/r4c1-sdk-layouts into main 2026-10-20 18:28:14 +00:00
mesh-tools 6f9a83646a Pin the json names of manifests, locks and inputs2 by the encoded bytes (issue 1442, review round 1)
mesh/merge-gate head 6f9a83646ab7 merged into trunk ab0c16ddad26 — pass, with a note: builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus …
mesh/repo-check head 6f9a83646ab7 merged into trunk ab0c16ddad26 — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript)…
mesh/delivery delivered
Go decodes keys case-insensitively, so a round trip could not see a dropped tag; the encoded bytes now name each field and an older message re-encodes to its own bytes.
2026-10-20 18:22:58 +00:00
mesh-tools 31c3b6cedc Carry manifests and lock hashes in the forge messages, keep a module's new-form inputs, and lay out the build modules' toolchain keys (design 47 R4c-1, issues 1442, 1443)
The indexer needs a module's manifest, lock hashes and toolchain to compute its new-form fingerprint, and has none of them (ADR 0465 clauses 1, 2, 5): the forge messages now carry the first two, a module keeps its inputs so it can be computed again when a toolchain is reported, and the build modules' toolchain keys have a layout and an agreement rule.
2026-10-20 18:20:15 +00:00
mesh-tools ab0c16ddad Merge pull request 'mesh-sdk takes the catalogue's remaining tests and the facts snapshot's layout, with each machine's grants and bindings (design 47 R4b, issues 1379, 1380)' (#49) from feat/r4b-sdk-users into main 2026-10-20 08:56:42 +00:00
mesh-tools c020c303ff Name the source of go/facts in its package doc (issue 1380, review round 1)
mesh/merge-gate head c020c303fff8 merged into trunk 14fd5cb68fd1 — pass, with a note: builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus …
mesh/repo-check head c020c303fff8 merged into trunk 14fd5cb68fd1 — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript)…
mesh/delivery delivered
2026-10-20 08:31:47 +00:00
mesh-tools 527840af9b Give go/facts each machine's grants and bindings, from facts format 2 (issue 1380)
Machine gains Grants (provision, consumer node, consumer module, local name; no sealed copy) and Bindings (consumer module, provision, provider node, provider module), both omitted when empty. Format moves 1 to 2, because a reader of 1 must refuse a snapshot that says what it cannot read (GrantsFrom names the number); MediaType stays, a reader of 2 reads a snapshot of 1 as having none. Scrubber.Grant and Scrubber.Binding put the machine names under pseudonyms as Pins' are. go/compose's Input.Issued and Node.Bound docs name them as where an assigner fills those from; no logic changes there. Tests: all new ones failed first (the types did not exist); the copied ones are exempt. Unit level 1.19 s (bound 2 s).
2026-10-20 08:25:46 +00:00
mesh-tools bd5feec19b Copy mesh-controller's facts snapshot layout into go/facts unchanged (issue 1380)
A pure copy of internal/facts (facts.go, scrub.go, facts_test.go) from novox/mesh-controller 6c2a8d62100cb7d491f8eb9a623e1eeea5ec0de1; standard library only. The next commit adds the grants and bindings.
2026-10-20 08:23:51 +00:00
mesh-tools d1886bbd7b Move the catalogue tests that read mesh-catalog into go/catalogue, and lay the captured copy out once per process (issue 1379)
Imports rewritten to mesh-sdk's (beside, catalogue, overlay). Left in mesh-controller, which holds their modules: TestTheBuilderRequiresTheRegistryTheNpmSeatDelivers (foundation_manifests_test.go), TestGenesisAssignsTheBuildAgentWithNothingProvidingTheRegistry (genesis_registry_test.go, whole file), TestRouteProxyKeepsItsPublicAccountDirectory (public_issuer_test.go), TestEveryManifestInUseClaimsASeatTheMeshDefines (seats_test.go); with controller_is_a_process_test.go and genesis_image_test.go. moduleTree reads mesh-catalog only: mesh-sdk has no modules directory of its own. beside.Dir lays a repository's captured copy out once per process (a mutex and a map, os.MkdirTemp), new test TestTheCapturedCopyIsLaidOutOnce failed first (two directories). The captured copy is refreshed from the mains: mesh-catalog bb0fe93b, mesh-host cdcba9ca, only what these tests read; CAPTURED says how to move it. Unit level 1.16 s (bound 2 s).
2026-10-20 08:22:45 +00:00
mesh-tools 8a4381d0c6 Copy mesh-controller's catalogue tests that read mesh-catalog, and internal/beside, from 6c2a8d62 unchanged (issue 1379)
A pure copy of 30 test files and internal/beside/beside.go; they do not compile until the next commit rewrites their imports. Source: novox/mesh-controller 6c2a8d62100cb7d491f8eb9a623e1eeea5ec0de1, internal/catalogue and internal/beside.
2026-10-20 08:21:38 +00:00
mesh-tools 781ba6aeb4 Capture the catalogue modules' remaining files directories and templates at mesh-catalog bb0fe93b for the moved catalogue tests (issue 1379)
Part 4 of 4 of go/testdata/beside.
2026-10-20 08:20:05 +00:00
mesh-tools 013d6231ed Capture the catalogue modules' files directories (adwaita to mailu) at mesh-catalog bb0fe93b for the moved catalogue tests (issue 1379)
Part 3 of 4 of go/testdata/beside.
2026-10-20 08:19:14 +00:00
mesh-tools a706310d34 Capture the catalogue's module.json files at mesh-catalog bb0fe93b for the moved catalogue tests (issue 1379)
Part 2 of 4 of go/testdata/beside; each kept as module.json.captured.
2026-10-20 08:18:33 +00:00
mesh-tools e58761afce Capture the catalogue's module.json files and the placement guard at today's mains for the moved catalogue tests (issue 1379)
mesh-catalog bb0fe93b, mesh-host cdcba9ca; part 1 of 3 of go/testdata/beside (module.json as module.json.captured).
2026-10-20 08:17:05 +00:00
mesh-tools 14fd5cb68f Merge pull request 'mesh-sdk takes the catalogue, the validator and a store-free composition, the fingerprint's new form and the delivery parts' key layouts (design 47 R4a, issues 1353-1364, 1298)' (#48) from feat/r4a-sdk-first into main 2026-10-20 07:15:54 +00:00
mesh-tools 075bf1e1fe Restore the line break the previous patch lost in rowsFor (formatting only)
mesh/repo-check head 075bf1e1fe8f merged into trunk 88581d0acaef — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript)…
mesh/merge-gate head 075bf1e1fe8f merged into trunk 88581d0acaef — pass: group feat/r4a-sdk-first composed: every machine composes with the change as it di…
mesh/delivery delivered
mesh/delivery-group group feat/r4a-sdk-first delivered: every member is delivered
2026-10-20 07:06:40 +00:00
mesh-tools cf965b93c2 Test the grant of a consumer on the provider's own node (review round 2, item 2); it failed before the previous commit 2026-10-20 07:06:26 +00:00
mesh-tools 8f0150bba2 Grant a consumer on the provider's own node too: a need answered on the same machine has its secret made before the grants are read (review round 2, item 2). The test failed first; the suite is 1259 tests in 1.05 s 2026-10-20 07:06:17 +00:00
mesh-tools 0729556ba3 Read the rest of the mesh and who is on the network with the current manifests: a node's kept build applies only to its own resolution, as the controller keeps a recorded module after reading both (review round 2, item 1). The test asserting the opposite failed first 2026-10-20 07:06:09 +00:00
mesh-tools 28d4b9eb0d Return the lines the composition found on the way (a node not counted as on the network) in Rendered.Said and Declared.Said (review round 1, finding 6). The test failed first; the suite is 1258 tests in 1.05 s 2026-10-20 07:03:36 +00:00
mesh-tools 3eadff23eb Take the suffix of internal names from the Input and never the environment: Input.InternalSuffix and a local internal-name helper, so the package doc is true (review round 1, finding 5). The test failed first; the suite is 1257 tests in 1.04 s 2026-10-20 07:02:58 +00:00
mesh-tools 892a3955b7 Place a given secret-family member whose value the Input lacks with a stand-in and name it foreseen, not drop it (review round 1, finding 4). The test failed first; the suite is 1256 tests in 1.05 s 2026-10-20 07:01:56 +00:00
mesh-tools 0864ae5e47 Compose a licence key the Input does not carry with a stand-in named foreseen; keep empty only where Keys is given and lacks the holder (review round 1, finding 3). The test failed first 2026-10-20 07:01:50 +00:00
mesh-tools 66da19827c Grant a provider every consumer the same send would make a credential for, with a stand-in named foreseen, so the identity bound is judged for a consumer a change adds; rows in the controller's order (review round 1, finding 2). Three tests failed first; the suite is 1254 tests in 1.05 s 2026-10-20 07:00:44 +00:00
mesh-tools 12319ce9dd Keep a recorded module at the build a node runs, per node: Node.Kept and Node.KeptBuilds overlay that node's own resolution and the commit it carries, never another node's (review round 1, finding 1; mirrors plan.go keepRecorded and carriedOn). Both tests failed first; the suite is 1251 tests in 1.05 s 2026-10-20 06:59:38 +00:00
mesh-tools 57d852e7da Test the whole-node composition: Compose accepted by the validator, refused manifests as problems, an unresolvable set as an error, determinism, foreseen outputs, the envelope's order and builds, adoption, the overflow refusal (issue 1298) 2026-10-20 06:49:28 +00:00
mesh-tools 6be65acb57 Compose a node's declaration over an Input and validate it with the node-engine's own validator: Compose and ComposeIn (issue 1298). Ported from mesh-control 6c2a8d62 plan.go declarationWith, carriedOn, wireBuilds, sendable.go Body and adoptionFor, facts.go composedAndValidated, in the Foreseeing mode: it allocates, makes, keeps and writes nothing. Named Compose, not Node, because the Input already has a type Node. A pull request's check refuses what Declared.Refusals() returns beside the validator's problems. 2026-10-20 06:47:27 +00:00
mesh-tools c1ba7bc1ae Give Input what a declaration's envelope reads: the order it is sent under, whether the engine reads modules, the builds last sent and the builds the mesh holds (issue 1298) 2026-10-20 06:46:54 +00:00
mesh-tools f7cf488ee7 Say in the Go README which packages release 4a adds (issues 1353 to 1364) 2026-10-20 06:46:22 +00:00
mesh-tools bd9ff3797d Test the credential half of the rendering over an Input (issue 1364). Fixtures from mesh-control 6c2a8d62 outside_not_given_test.go (the assistant's two secrets) and the facts_test.go provider and consumer; the refusals checked word for word against plan.go and secrets.go. Written after the code, each rule broken in turn and a test seen to fail. The bus user list is an Input value, so its test is that it is carried (see the commit of the code). Unit level 1.04 s of 2 s. 2026-10-20 06:42:55 +00:00
mesh-tools b7e1c22512 Compose the credential half of the rendering over an Input: grants, own secrets, core boxes, the certificate, the bus's user list (issue 1364). Ported from mesh-control 6c2a8d62 plan.go renderingFor, grantsFor, certificateFor and core_box.go in their Reading and Foreseeing modes: nothing is made, kept or written; a stand-in is named foreseen, a core box to keep is returned, a consumer left out of a grant and a credential bound elsewhere are returned naming them. The bus's user list is an Input value the controller composes: the broker's account composer (internal/broker, about 900 lines that import the lease and the bus client) is not ported, see the report of this branch. 2026-10-20 06:41:58 +00:00
mesh-tools aecb52c1af Give Input what the credential half of the rendering reads: the credentials made for consumers, own secrets held, kept core boxes, the bus's user list and memberships, serving keys and certificates (issue 1364) 2026-10-20 06:41:00 +00:00