From a8da15caff5371f389d95db3847f1c8ed54845ac Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 15:08:26 +0100 Subject: [PATCH 1/4] Answer A-284: a group's check builds a TypeScript member against the group's own packages Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index 3c1e21eb..e4b68ee7 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -396,3 +396,8 @@ the principle that settles it, cited as "design 47 G A-n". - **A-283** (A-277, ADR 0595; principle 7) The holder of the seat `mesh-broker` makes a template `state` bucket with the `max-mib` its requirement declares, the default cap where none is declared, as the grants part does for a state section; one cap rule for every state bucket. +- **A-284** (ADR 0573 §2, ADR 0500 §5; principles 5 and 7) In a group's check, a TypeScript member is built + against the group's own heads, as a Go member is: the check packs every `@novox/mesh-*` package a member's + merge changes (the SDK's `lib` artifact given its path, and a member's new packages such as another member's + contracts) by the form ADR 0500 §5 gives the SDK, and serves them to every member that imports them; the + latest published version is used only for a package the group does not change. -- 2.54.0 From 9dfde6fca11921ced60ac4071fb19d4b049b012c Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 15:15:44 +0100 Subject: [PATCH 2/4] Answer A-285 and A-286: a fetch carries the group's packages as a list; a failed test never hides the validator Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- .../01-to-be/47-milestones/G-22-lead-answers-2.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index e4b68ee7..8b6b7b57 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -401,3 +401,13 @@ the principle that settles it, cited as "design 47 G A-n". merge changes (the SDK's `lib` artifact given its path, and a member's new packages such as another member's contracts) by the form ADR 0500 §5 gives the SDK, and serves them to every member that imports them; the latest published version is used only for a package the group does not change. +- **A-285** (A-284; principles 7 and 8) The fetch of a build step carries the group's packages as one list, + `packages`, each a package of a member at its commit with `path`, its directory in that member (empty for the + member's root); the single `package` field and its tagged form go. The build module packs each and places it by + its `package.json` name in every member that names it, in place of the registry's. The SDK's `lib` artifact names + its paths (`package.json`, `package-lock.json`, `tsconfig.json`, `src`) in mesh-sdk's manifest, so the indexer + holds them and a change to them is a changed package. +- **A-286** (issue 1921; principle 3) The checker previews and judges every member whose fetch merged, whatever its + later steps ended with; only a member whose head does not merge, or whose fetch did not answer, stays + unpreviewed, and the check says which of the two. A failed test never hides the manifest validator or the + composition. -- 2.54.0 From c7850092fa08cea79e9ffcbf66a3b975781b5913 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 15:16:30 +0100 Subject: [PATCH 3/4] Correct A-285: the group's packages are group-packages, since packages already holds the Go versions Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index 8b6b7b57..0c785505 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -402,8 +402,9 @@ the principle that settles it, cited as "design 47 G A-n". contracts) by the form ADR 0500 §5 gives the SDK, and serves them to every member that imports them; the latest published version is used only for a package the group does not change. - **A-285** (A-284; principles 7 and 8) The fetch of a build step carries the group's packages as one list, - `packages`, each a package of a member at its commit with `path`, its directory in that member (empty for the - member's root); the single `package` field and its tagged form go. The build module packs each and places it by + `group-packages` (beside `packages`, which stays the Go mesh packages' versions), each a package of a member at + its commit with `path`, its directory in that member (empty for the member's root); the single `package` field + and its tagged form go. The build module packs each and places it by its `package.json` name in every member that names it, in place of the registry's. The SDK's `lib` artifact names its paths (`package.json`, `package-lock.json`, `tsconfig.json`, `src`) in mesh-sdk's manifest, so the indexer holds them and a change to them is a changed package. -- 2.54.0 From 41dd30fe436e11f6ac183d59171a541b2d997f15 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 15:16:53 +0100 Subject: [PATCH 4/4] Amend A-286: a check step that errors after its fetch merged still answers its fetch Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index 0c785505..ae7709f5 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -410,5 +410,7 @@ the principle that settles it, cited as "design 47 G A-n". holds them and a change to them is a changed package. - **A-286** (issue 1921; principle 3) The checker previews and judges every member whose fetch merged, whatever its later steps ended with; only a member whose head does not merge, or whose fetch did not answer, stays - unpreviewed, and the check says which of the two. A failed test never hides the manifest validator or the - composition. + unpreviewed, and the check says which of the two. A check step that errors after its fetch merged (a level that + does not compile or generate) ends failed with its answer all the same: its fetch and the levels so far, beside + its error, so the checker previews from it. A failed test or a failed level never hides the manifest validator or + the composition. -- 2.54.0