Commit Graph

  • 863a981e01 Merge pull request 'Let a declared file travel by its sha256 digest instead of its content, so a node's declaration is no longer bounded by one bus message (issue 1694, ADR 0486 step 1)' (#59) from fix/1694-file-references into main mesh-tools 2026-10-21 12:43:57 +00:00
  • b68fc75589 Merge pull request 'Let a container name supplementary groups, from a number or a trusted config key, so n8n can join the media group without an image of its own (issue 1636, R4d)' (#58) from feat/r4d-groups into main mesh-tools 2026-10-21 12:30:02 +00:00
  • 6c857e1c02 A bytes file of exactly 64 KiB stays inline: take its exact decoded length (issue 1694) jschoubben 2026-10-21 14:23:48 +02:00
  • f8a9420952 A declaration's file can be a reference by digest: layout, bucket and capability names, helpers (issues 1694, ADR 0486) jschoubben 2026-10-21 14:12:19 +02:00
  • f0f66d5b8d A container may add supplementary groups, and a group may be a config value filled at composition (issue 1636, ADR 0480 clause 7) jschoubben 2026-10-21 14:01:19 +02:00
  • 66e8fdaa62 Merge pull request 'Read an ended or pending assignment as a removed key in the provider helper, on main, so the modules pinning it can pin main (issues 1098, 1663)' (#57) from fix/1663-provider-standing into main mesh-tools 2026-10-21 11:40:14 +00:00
  • 88375c5786 Merge pull request 'Test that a node without the go or nodejs module refuses the modules needing a toolchain, against the catalogue as it now stands (issue 1573)' (#56) from fix/1573-toolchain-resolve into main mesh-tools 2026-10-21 11:27:27 +00:00
  • 757509366e The provider helper reads an ended or pending assignment as a removed key (issue 1098) jschoubben 2026-10-18 02:38:58 +02:00
  • c8e35097e8 Count an item's text as a placement of a config value, so a key only an item says is not refused (issue 1658) jschoubben 2026-10-21 12:54:08 +02:00
  • ddfa119720 Cite ADR 0478's accepted clause numbers jschoubben 2026-10-21 12:45:04 +02:00
  • a86d607e48 Refresh the captured catalogue from mesh-catalog main, with the toolchain modules (issue 1573) jschoubben 2026-10-21 12:45:01 +02:00
  • 86ac7596c9 Test that a node without the go or nodejs module refuses the modules needing a toolchain, and with it composes (issue 1573) jschoubben 2026-10-21 11:17:45 +02:00
  • cb54756c38 Merge pull request 'Give delivery.Module the toolchains its fingerprint was computed with, and '.' as a root module's path, so the builder builds a key only with its own toolchain (issue 1615)' (#55) from fix/1615-module-toolchains-root into main mesh-tools 2026-10-21 10:02:09 +00:00
  • 89dd57bed0 Give delivery.Module the toolchains its fingerprint was computed with, and '.' as a root module's path, so the builder builds a key only with its own toolchain (issue 1615) mesh-tools 2026-10-21 09:37:14 +00:00
  • 465beb4ea5 Merge pull request 'Name a bucket's other users in the manifest, and sign and stream store links in one helper (issues 1591, 1592)' (#54) from feat/files-through-the-store into main mesh-tools 2026-10-21 09:36:45 +00:00
  • c9f978d330 Merge pull request 'Give delivery.Module a path and BuildRecord the artifacts a build made, so the builder can find a module and the view compare digests (issue 1588, ADR 0478)' (#53) from fix/1588-module-path-made into main mesh-tools 2026-10-21 09:27:12 +00:00
  • efd3d224e1 Put takes the body's exact size and always sends it as Content-Length; refuse a link under one second (issue 1592) jschoubben 2026-10-21 11:22:18 +02:00
  • 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) jschoubben 2026-10-21 11:18:15 +02:00
  • 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) jschoubben 2026-10-21 11:15:49 +02:00
  • 66b052aeee Cite ADR 0478's clause on the module's directory by its number in the record's version 4 (issue 1588) mesh-tools 2026-10-21 09:08:15 +00:00
  • ea1b2ab395 Give delivery.Module a path and BuildRecord the artifacts a build made, so the builder can find a module and compare digests (issue 1588) mesh-tools 2026-10-21 09:04:43 +00:00
  • ef76b9f2ea Replay issue 1439 as TestReplay1439 (mesh-lab R1439) fix/1439-replay jochen 2026-10-21 10:54:23 +02:00
  • 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 mesh-tools 2026-10-21 08:07:43 +00:00
  • 7bf4a8053a Read a lowercase name with digits as a name, not a secret (issue 1439) jochen 2026-10-21 09:55:04 +02:00
  • 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 mesh-tools 2026-10-20 20:46:26 +00:00
  • 1572e50e0e Give a build step's commands only the environment its caller names (issue 1497) mesh-tools 2026-10-20 20:39:45 +00:00
  • 51e517f055 Restore the full tar stream of Pack's golden (issue 1479) mesh-tools 2026-10-20 20:39:23 +00:00
  • df9a2bba8c Add the build agent's uncompressed tar stream as Pack's golden (issue 1479) mesh-tools 2026-10-20 20:38:59 +00:00
  • 8406bb3a77 Compare Pack's tar stream with the build agent's, since gzip's bytes differ between Go versions (issue 1479) mesh-tools 2026-10-20 20:38:47 +00:00
  • 0b990a9c31 Name the step's deadline, not a bound never set, when an unbounded command is cut (issue 1497) mesh-tools 2026-10-20 20:09:32 +00:00
  • 9e296295c0 Let a long step's exec runner be bound by its context alone (issue 1497), part 8 of 8 mesh-tools 2026-10-20 20:07:15 +00:00
  • 512472c02a Pack a build's output like the build agent and keep the steps state's shape (issues 1471, 1479), part 7 of 7 mesh-tools 2026-10-20 20:06:48 +00:00
  • a776ca525a Test the fetch of one commit over SSH (issue 1474), part 6 of 7 mesh-tools 2026-10-20 20:06:12 +00:00
  • 43b6361d09 Test the step runner and the toolchain guard (issues 1471, 1473), part 5 of 7 mesh-tools 2026-10-20 20:05:49 +00:00
  • 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 mesh-tools 2026-10-20 20:05:21 +00:00
  • 4d4112a008 Call a module's tool or a seat verb on a named machine (issue 1470), part 3 of 6 mesh-tools 2026-10-20 20:04:47 +00:00
  • a51dc144a1 Test the key keeper (issue 1469), part 2 of 6 mesh-tools 2026-10-20 20:04:27 +00:00
  • 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 mesh-tools 2026-10-20 20:03:17 +00:00
  • 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 mesh-tools 2026-10-20 18:28:14 +00:00
  • 6f9a83646a Pin the json names of manifests, locks and inputs2 by the encoded bytes (issue 1442, review round 1) mesh-tools 2026-10-20 18:22:58 +00:00
  • 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) mesh-tools 2026-10-20 18:20:15 +00:00
  • 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 mesh-tools 2026-10-20 08:56:42 +00:00
  • c020c303ff Name the source of go/facts in its package doc (issue 1380, review round 1) mesh-tools 2026-10-20 08:31:47 +00:00
  • 527840af9b Give go/facts each machine's grants and bindings, from facts format 2 (issue 1380) mesh-tools 2026-10-20 08:25:46 +00:00
  • bd5feec19b Copy mesh-controller's facts snapshot layout into go/facts unchanged (issue 1380) mesh-tools 2026-10-20 08:23:51 +00:00
  • d1886bbd7b Move the catalogue tests that read mesh-catalog into go/catalogue, and lay the captured copy out once per process (issue 1379) mesh-tools 2026-10-20 08:22:45 +00:00
  • 8a4381d0c6 Copy mesh-controller's catalogue tests that read mesh-catalog, and internal/beside, from 6c2a8d62 unchanged (issue 1379) mesh-tools 2026-10-20 08:21:38 +00:00
  • 781ba6aeb4 Capture the catalogue modules' remaining files directories and templates at mesh-catalog bb0fe93b for the moved catalogue tests (issue 1379) mesh-tools 2026-10-20 08:20:05 +00:00
  • 013d6231ed Capture the catalogue modules' files directories (adwaita to mailu) at mesh-catalog bb0fe93b for the moved catalogue tests (issue 1379) mesh-tools 2026-10-20 08:19:14 +00:00
  • a706310d34 Capture the catalogue's module.json files at mesh-catalog bb0fe93b for the moved catalogue tests (issue 1379) mesh-tools 2026-10-20 08:18:33 +00:00
  • e58761afce Capture the catalogue's module.json files and the placement guard at today's mains for the moved catalogue tests (issue 1379) mesh-tools 2026-10-20 08:17:05 +00:00
  • 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 mesh-tools 2026-10-20 07:15:54 +00:00
  • 075bf1e1fe Restore the line break the previous patch lost in rowsFor (formatting only) mesh-tools 2026-10-20 07:06:40 +00:00
  • cf965b93c2 Test the grant of a consumer on the provider's own node (review round 2, item 2); it failed before the previous commit mesh-tools 2026-10-20 07:06:26 +00:00
  • 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 mesh-tools 2026-10-20 07:06:17 +00:00
  • 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 mesh-tools 2026-10-20 07:06:09 +00:00
  • 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 mesh-tools 2026-10-20 07:03:36 +00:00
  • 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 mesh-tools 2026-10-20 07:02:58 +00:00
  • 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 mesh-tools 2026-10-20 07:01:56 +00:00
  • 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 mesh-tools 2026-10-20 07:01:50 +00:00
  • 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 mesh-tools 2026-10-20 07:00:44 +00:00
  • 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 mesh-tools 2026-10-20 06:59:38 +00:00
  • 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) mesh-tools 2026-10-20 06:49:28 +00:00
  • 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. mesh-tools 2026-10-20 06:47:27 +00:00
  • 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) mesh-tools 2026-10-20 06:46:54 +00:00
  • f7cf488ee7 Say in the Go README which packages release 4a adds (issues 1353 to 1364) mesh-tools 2026-10-20 06:46:22 +00:00
  • 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. mesh-tools 2026-10-20 06:42:55 +00:00
  • 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. mesh-tools 2026-10-20 06:41:58 +00:00
  • 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) mesh-tools 2026-10-20 06:41:00 +00:00
  • 7823403869 Test the place half of the rendering over an Input (issue 1363). Fixtures from mesh-control 6c2a8d62 sendable_integration_test.go (the store, the given port) and local_network_test.go (the networks); written after the code, each rule broken in turn and a test seen to fail. Unit level 1.05 s of 2 s. mesh-tools 2026-10-20 06:35:09 +00:00
  • d3436abd82 Compose the place half of a rendering over an Input: ports never allocated, seats, networks, names, zones, accounts, the operator's export (issue 1363). Ported from mesh-control 6c2a8d62 plan.go renderingFor, network.go, holdings.go, local_network.go in their Reading and Foreseeing modes. A port the Input holds none for is composed as the manifest says and named foreseen. mesh-tools 2026-10-20 06:34:19 +00:00
  • 084aa4ae75 Give Input what the place half of the rendering reads: taken modules, outward links, attached networks, the engine's contract, built repositories and the operator's export (issue 1363) mesh-tools 2026-10-20 06:33:14 +00:00
  • fa08c5c308 Test one node's resolution over an Input (issue 1362). Ported from mesh-control 6c2a8d62 bindings_test.go and bindings_integration_test.go (store-free part); the credential cases are new, from the rules in plan.go. Written after the code, checked by breaking each rule in turn and seeing a test fail. Unit level 1.05 s of 2 s. mesh-tools 2026-10-20 06:28:49 +00:00
  • 7ba9bcd873 Resolve one node over an Input, its credentials as stand-ins and its settings (issue 1362). Ported from mesh-control 6c2a8d62 planFor. Nothing is made: a pair credential is how it stands (held, to make, only a person's to give, refused), never its value; keepRecorded is left to the caller, who puts the kept manifest in the Catalogue. The bus credential nobody issued and a given own secret under an old key are refused where the controller refuses them, in the rendering (issue 1364). mesh-tools 2026-10-20 06:28:05 +00:00
  • 80fa1a0551 Test the private network and the rest of the mesh over an Input (issues 1360, 1361). Tests ported from mesh-control 6c2a8d62 network_test.go and seat_pass_test.go with their values; written after the code, checked by breaking each rule in turn and seeing a test fail. Store-backed ones are rebuilt as Inputs; overlayPlace's own refusal of an endpoint off the tunnel's port, namesInTheMesh and the resolver's roster test are the controller's or the rendering's (1363). mesh-tools 2026-10-20 06:24:18 +00:00
  • cb1b7a6f5d Compose the private network and the rest of the mesh over a plain Input: Generators and TheRestOfTheMesh (issues 1360, 1361). Ported from mesh-control 6c2a8d62 network.go, plan.go, seat_pass.go. Store-backed tests (aMesh) are rebuilt as Inputs from the same values; the writes they exercised (a placement through overlay place, a seat passed through the store) are Input values or a returned Pass, and the controller-only tests of a failed read or write have no counterpart here. Unit level 1.04 s of 2 s. mesh-tools 2026-10-20 06:22:58 +00:00
  • 3cd2bd8104 Point the copied overlay generator at the SDK's catalogue, and name its source (issue 1360) mesh-tools 2026-10-20 06:13:08 +00:00
  • 9e2dc045b6 Copy mesh-controller's overlay generator into mesh-sdk, from mesh-control 6c2a8d62 (issue 1360) mesh-tools 2026-10-20 06:12:52 +00:00
  • a79f737fc7 Make the copied catalogue stand in mesh-sdk: the SDK's validator, user-namespaces, two tests that read the controller's module.json left out (issue 1354). Unit level 1.05 s of 2 s with the package in (1162 tests, 3 skipped). Diff against the source: git diff --no-index <mesh-control 6c2a8d62 internal/catalogue> go/catalogue shows only doc.go, user_namespaces_test.go, three import lines, KnownCapabilities, and the two deleted test functions mesh-tools 2026-10-20 06:12:25 +00:00
  • 16ce926406 Copy mesh-controller's catalogue into mesh-sdk, part 2: its 149 self-contained test files, from mesh-control 6c2a8d62 (issue 1354) mesh-tools 2026-10-20 06:10:23 +00:00
  • 5e4fcc6db7 Copy mesh-controller's catalogue into mesh-sdk, part 1: the package and its testdata, from mesh-control 6c2a8d62 (issue 1354) mesh-tools 2026-10-20 06:05:52 +00:00
  • aa70feb9b5 Test a 21 KB manifest round trip byte for byte, on mailu's manifest copied from mesh-catalog (issue 1357) mesh-tools 2026-10-20 06:02:43 +00:00
  • be506bb502 Copy the node-engine's validator into mesh-sdk, on the SDK's parser (issue 1353) mesh-tools 2026-10-20 06:02:28 +00:00
  • 1d6a0e892e Name the source commit in the declaration package's doc (issue 1353) mesh-tools 2026-10-20 06:02:17 +00:00
  • 88581d0aca Merge pull request 'Give each asking of a merge ask its own id, and add the have phase removed (issues 1370, 1369)' (#47) from fix/r3e-before-the-gate into main mesh-tools 2026-10-20 06:02:01 +00:00
  • e5e3e62f28 Copy the node-engine's declaration parser into mesh-sdk, from mesh-host main (issue 1353) mesh-tools 2026-10-20 06:01:48 +00:00
  • 3387abf50e Name the builder's and the checker's layouts in the delivery package doc (issues 1358, 1359) mesh-tools 2026-10-20 01:48:41 +00:00
  • 33b87b794c Lay out the checker's verdicts, keyed by group and heads, and the kept verdicts (issue 1359) mesh-tools 2026-10-20 01:48:29 +00:00
  • 21cccc6a8d Lay out the builder's build keys, builds.<module>.<fingerprint>, beside the controller's (issue 1358) mesh-tools 2026-10-20 01:46:16 +00:00
  • d4967f186e Test the indexer's manifests, the new fields of modules and candidates, and the fpset (issue 1357) mesh-tools 2026-10-20 01:44:22 +00:00
  • 9b4c2ba591 Give a module and a candidate the new-form fingerprint, the manifest digest and the fpset, in version 1 (issue 1357) mesh-tools 2026-10-20 01:43:39 +00:00
  • 1bbf75ae19 Add the layout of the indexer's manifests bucket: the key by digest and its value (issue 1357) mesh-tools 2026-10-20 01:43:17 +00:00
  • 605eca2c0a Compute the source fingerprint's new form beside src1, and its key part (issue 1356) mesh-tools 2026-10-20 01:40:35 +00:00
  • 0cdbcc6019 Say which mesh-sdk version a program was built with, from the build info (issue 1355) mesh-tools 2026-10-20 01:38:41 +00:00
  • ba684e5497 Give each asking of a merge ask its own id, and add the have phase removed (issues 1370, 1369) mesh-tools 2026-10-20 01:18:49 +00:00
  • 5786ba190c Merge pull request 'Count a build outcome as the controller writes it: no state, no failure (issue 1281)' (#46) from fix/1281-outcome-is-a-build into main mesh-tools 2026-10-19 23:02:01 +00:00
  • 839238fec9 Say in the fixture's comment how it was made; test an answered state without inputs (issue 1281) mesh-tools 2026-10-19 22:47:27 +00:00
  • 58373d65b4 Count a build record without a state as the outcome it is (issue 1281): the controller never stores state built mesh-tools 2026-10-19 22:39:29 +00:00
  • 6079ddfe84 Merge pull request 'Give the gate's keys what the forge needs: approved heads, owed targets, escaped names (design 47 R3d, ADR 0450)' (#45) from feat/r3d-sdk-and-controller into main mesh-tools 2026-10-19 22:33:12 +00:00
  • 2f1454699a Let an owed act carry a status target, a commit without a pull request and a numbered comment (issue 1322) mesh-tools 2026-10-19 21:32:55 +00:00