From b043d0b71cc53a13c0f8954d12d9dfb8648da717 Mon Sep 17 00:00:00 2001 From: EHotwagner Date: Thu, 22 Oct 2026 21:02:40 +0200 Subject: [PATCH 1/2] Reconcile published Workspace.Template 0.19.1 and Rendering 0.32.3 in the registry (Refs #4709) fs-gg-workspace-template: source/package/tag 0.19.1 from protected 1e95dddb (Templates#730), original publisher 39745222454/a1, artifact 12410648325 (16736d87...) equal to GitHub Packages and release asset; signed nuget.org 5d1886c3... matches all 512 signature-excluded entries; tag 515783ac peels to 1e95dddb. 0.19.0 stays as history, and its scoped receivers are not extended to 0.19.1. fs-gg-ui-template: source/package/tag 0.32.3. Protected publisher 39817794639/a1 (executor fc2b177e) published all 19 original 4ec6eafb archives to both feeds; tags converge by same-intent settlement 39774890888/a1. feed-autofix is audit-only since GS2-08.9 and cannot flip this row, so the flip lands here. The templates -> rendering edge records Templates PR728 (2f8d400a) source selection of 0.32.3; published Workspace 0.19.1 still carries 0.32.1. Updates architecture/components/consumer rows and the feed-coherence comparators, and regenerates the release inventory and compatibility projection. Prepends a CHANGELOG entry. Co-Authored-By: Claude Opus 5.5 --- .../skills/publishing-and-deployment/SKILL.md | 4 +- .../skills/publishing-and-deployment/SKILL.md | 4 +- docs/architecture.md | 8 ++-- docs/components.md | 4 +- docs/consumer/versioning-and-updates.md | 4 +- docs/registry/compatibility.md | 4 +- registry/CHANGELOG.md | 18 ++++++++ registry/dependencies.yml | 42 ++++++++++++------- tests/feed-coherence/run.sh | 18 ++++---- 9 files changed, 67 insertions(+), 39 deletions(-) diff --git a/.agents/skills/publishing-and-deployment/SKILL.md b/.agents/skills/publishing-and-deployment/SKILL.md index dae565e50..3b1065f3b 100644 --- a/.agents/skills/publishing-and-deployment/SKILL.md +++ b/.agents/skills/publishing-and-deployment/SKILL.md @@ -27,7 +27,7 @@ Registry release inventory: 18 package-bearing contracts across 9 producers; 16 | `sdd` | `fsgg-contracts` | `7.6.0` | `7.6.0` | `sdd:7.6.0` | FS.GG.Contracts package — Fsgg.Schemas (typed .fsgg schema records + version constants for providers/project/sdd/agents/governance/policy/capabilities/tooling/scaffold-provenance/ governance-handoff) / Fsgg.Provider (extended ProviderDescriptor + optional Build/Test/Run/Verify commands + canonical NameParameter default "name") / Fsgg.Registry (dependencies.yml types + validator; 1.1.0 adds the typed registry validator over the real dependencies.yml, SDD#26 / feature 042 — additive; 2.1.0 adds the SKILL-REGISTRY surface — `SkillRegistryEntry`, `SkillRegistryDocument`, `MirrorDeclaration`, `validateSkillRegistry`, and the `MalformedField` case on the public DU `RegistryRule` — +78 lines of Registry.fsi, additive, FS.GG.SDD#426. That surface SHIPPED IN THE 2.0.1 PATCH and 2.1.0 is the corrective relabel; see the `version` comment above) / Fsgg.SkillMirror (1.4.0, ADR-0014 P1 / SDD#61: the pure BCL-only materialize-and-verify library — `mirror`/`verify` over the single `agentSkillRoots` constant, the one skill-fan-out code path for scaffold/refresh/doctor/upgrade) / Fsgg.ContractVersion (= 7.4.0). As of 7.4.0 the `.nupkg` also packs `api-surface/*.fsi` — six files, one per public module — so the signature surface described here is readable from the PACKAGE and not only from SDD's source tree (FS.GG.Rendering#782's producer half; FS.GG.Rendering#1101 pins that capability as a floor). | | `governance` | `governance-config` | `0.3.0` | `0.3.0` | `governance:0.3.0` | FS.GG.Governance.Config: configuration parsing and CapabilityBindings request/resolver | | `governance` | `governance-reference-gate-set` | `1.7.0` | `1.7.0` | `governance:1.7.0` | FS.GG.Governance.ReferenceGateSet content package — contentFiles/any/any/.fsgg/{governance,capabilities,policy,tooling}.yml, byte-identical to samples/sdd-reference-gate-set/.fsgg/; version-derivation rule per ADR-0055. | -| `rendering` | `fs-gg-ui-template` | `0.32.1` | `0.32.1` | `rendering:0.32.1` | dotnet new fs-gg-ui (template/base) + FS.GG.UI.* framework packages | +| `rendering` | `fs-gg-ui-template` | `0.32.3` | `0.32.3` | `rendering:0.32.3` | dotnet new fs-gg-ui (template/base) + FS.GG.UI.* framework packages | | `game` | `game-sim-core` | `0.17.0` | `0.17.0` | `game:0.17.0` | FS.GG.Game.Core package — BCL-only deterministic simulation primitives plus the packaged fs-gg-game-core-fable-lockstep-v1 bounded Fable source/profile and canonical oracle | | `game` | `wasm-shared-runtime` | `0.6.0` | `0.6.0` | `game:0.6.0` | FS.GG.Wasm.Contracts and FS.GG.Wasm.Browser coherent package set; closed generated-policy Worker, browser lifecycle, terminal Process retirement, portable Fable sources and coupled author SDK archive | | `game` | `game-physics-box2d` | `0.17.0` | `0.17.0` | `game:0.17.0` | FS.GG.Game.Physics.Box2D — optional owned Box2D.NET 3.1.654 worlds, immutable snapshots/events, pinned-profile replay and rigid local-area transfers; no rendering dependency | @@ -37,7 +37,7 @@ Registry release inventory: 18 package-bearing contracts across 9 producers; 16 | `github` | `coord-engine` | `0.113.0` | `0.112.0` | `github:0.112.0` | the `fsgg-coord-engine` CLI verb surface (claim/take/batch/who/widen/set-paths/say/landable/done/release/flush/…) + its exit-code contract, emitted from src/FS.GG.Coord.Core/Protocol.fs; shipped as the FS.GG.Coord.Cli dotnet tool | | `github` | `telemetry-host` | `0.8.0` | `0.8.0` | `github:0.8.0` | optional Linux x64 FS.GG.Telemetry.Host dotnet tool — authenticated workspace-scoped ingestion, private dashboard, protected native capture and bounded learning export; independently versioned from the github coordination coherent set | | `github` | `new-sdd-workspace` | `0.21.0` | `0.21.0` | `github:0.21.0` | the `new-sdd-workspace` scaffolder CLI (package FS.GG.NewSddWorkspace) — one-command full-stack SDD workspace creation, wrapping the FS.GG.Templates `rendering` provider (ADR-0016); shipped as a dotnet tool | -| `templates` | `fs-gg-workspace-template` | `0.19.0` | `0.19.0` | `templates:0.19.0` | FS.GG.Workspace.Template package, eight template configurations and seven `dotnet new` selectors: workspace-provider identities — `fs-gg-console` (provider `console` — minimal F# executable, no npm lane, ADR-0072 §2); `fs-gg-web` (provider `web` — F# ASP.NET Core + plain TypeScript/Vite website, ADR-0071 §3); `fs-gg-fable-game` (provider `fable-game` — F# ASP.NET Core + Fable/Elmish game client, SignalR for connection-oriented real-time traffic + plain HTTP endpoints with explicit versioned DTOs for typed request/response per ADR-0073, consuming the published `fs-gg-game-core-fable-lockstep-v1` profile per ADR-0069); `fs-gg-fable-bindings` (provider `fable-bindings` — Fable interop library over an exactly pinned npm package/declaration closure, ADR-0072 §3, first proved by the unreleased EHotwagner/babylonjsBindings reference) — plus `fs-gg-governance`, the separately registered pre-existing governance overlay template folded into this package at the same rename; `fs-gg-project-knowledge` and `fs-gg-python` are also already packaged. The current and legacy fable-game configurations share one selector. | +| `templates` | `fs-gg-workspace-template` | `0.19.1` | `0.19.1` | `templates:0.19.1` | FS.GG.Workspace.Template package, eight template configurations and seven `dotnet new` selectors: workspace-provider identities — `fs-gg-console` (provider `console` — minimal F# executable, no npm lane, ADR-0072 §2); `fs-gg-web` (provider `web` — F# ASP.NET Core + plain TypeScript/Vite website, ADR-0071 §3); `fs-gg-fable-game` (provider `fable-game` — F# ASP.NET Core + Fable/Elmish game client, SignalR for connection-oriented real-time traffic + plain HTTP endpoints with explicit versioned DTOs for typed request/response per ADR-0073, consuming the published `fs-gg-game-core-fable-lockstep-v1` profile per ADR-0069); `fs-gg-fable-bindings` (provider `fable-bindings` — Fable interop library over an exactly pinned npm package/declaration closure, ADR-0072 §3, first proved by the unreleased EHotwagner/babylonjsBindings reference) — plus `fs-gg-governance`, the separately registered pre-existing governance overlay template folded into this package at the same rename; `fs-gg-project-knowledge` and `fs-gg-python` are also already packaged. The current and legacy fable-game configurations share one selector. | | `game` | `game-skills` | `0.9.0` | `0.9.0` | `game:0.9.0` | FS.GG.Game.Skills 0.9.0 package — owner-sourced game, Fable, replay and rules guidance with schema-v2 per-file digests and workspace bundle predicates; embedded by the SDD 1.8 receiver | | `rendering` | `rendering-skills` | `0.2.0` | `0.2.0` | `rendering:0.2.0` | FS.GG.Rendering.Skills 0.2.0 package — owner-sourced SVG assets/performance and Fable workspace guidance with schema-v2 per-file digests and bundle predicates; embedded by the SDD 1.8 receiver | | `audio` | `audio-skills` | `0.1.0` | `0.1.0` | `audio:0.1.0` | FS.GG.Audio.Skills package — Audio-owned browser effect guidance with schema-v2 per-file digests; SDD 1.8 embeds the owner manifest and preserves Audio ownership in scaffold provenance | diff --git a/.claude/skills/publishing-and-deployment/SKILL.md b/.claude/skills/publishing-and-deployment/SKILL.md index dae565e50..3b1065f3b 100644 --- a/.claude/skills/publishing-and-deployment/SKILL.md +++ b/.claude/skills/publishing-and-deployment/SKILL.md @@ -27,7 +27,7 @@ Registry release inventory: 18 package-bearing contracts across 9 producers; 16 | `sdd` | `fsgg-contracts` | `7.6.0` | `7.6.0` | `sdd:7.6.0` | FS.GG.Contracts package — Fsgg.Schemas (typed .fsgg schema records + version constants for providers/project/sdd/agents/governance/policy/capabilities/tooling/scaffold-provenance/ governance-handoff) / Fsgg.Provider (extended ProviderDescriptor + optional Build/Test/Run/Verify commands + canonical NameParameter default "name") / Fsgg.Registry (dependencies.yml types + validator; 1.1.0 adds the typed registry validator over the real dependencies.yml, SDD#26 / feature 042 — additive; 2.1.0 adds the SKILL-REGISTRY surface — `SkillRegistryEntry`, `SkillRegistryDocument`, `MirrorDeclaration`, `validateSkillRegistry`, and the `MalformedField` case on the public DU `RegistryRule` — +78 lines of Registry.fsi, additive, FS.GG.SDD#426. That surface SHIPPED IN THE 2.0.1 PATCH and 2.1.0 is the corrective relabel; see the `version` comment above) / Fsgg.SkillMirror (1.4.0, ADR-0014 P1 / SDD#61: the pure BCL-only materialize-and-verify library — `mirror`/`verify` over the single `agentSkillRoots` constant, the one skill-fan-out code path for scaffold/refresh/doctor/upgrade) / Fsgg.ContractVersion (= 7.4.0). As of 7.4.0 the `.nupkg` also packs `api-surface/*.fsi` — six files, one per public module — so the signature surface described here is readable from the PACKAGE and not only from SDD's source tree (FS.GG.Rendering#782's producer half; FS.GG.Rendering#1101 pins that capability as a floor). | | `governance` | `governance-config` | `0.3.0` | `0.3.0` | `governance:0.3.0` | FS.GG.Governance.Config: configuration parsing and CapabilityBindings request/resolver | | `governance` | `governance-reference-gate-set` | `1.7.0` | `1.7.0` | `governance:1.7.0` | FS.GG.Governance.ReferenceGateSet content package — contentFiles/any/any/.fsgg/{governance,capabilities,policy,tooling}.yml, byte-identical to samples/sdd-reference-gate-set/.fsgg/; version-derivation rule per ADR-0055. | -| `rendering` | `fs-gg-ui-template` | `0.32.1` | `0.32.1` | `rendering:0.32.1` | dotnet new fs-gg-ui (template/base) + FS.GG.UI.* framework packages | +| `rendering` | `fs-gg-ui-template` | `0.32.3` | `0.32.3` | `rendering:0.32.3` | dotnet new fs-gg-ui (template/base) + FS.GG.UI.* framework packages | | `game` | `game-sim-core` | `0.17.0` | `0.17.0` | `game:0.17.0` | FS.GG.Game.Core package — BCL-only deterministic simulation primitives plus the packaged fs-gg-game-core-fable-lockstep-v1 bounded Fable source/profile and canonical oracle | | `game` | `wasm-shared-runtime` | `0.6.0` | `0.6.0` | `game:0.6.0` | FS.GG.Wasm.Contracts and FS.GG.Wasm.Browser coherent package set; closed generated-policy Worker, browser lifecycle, terminal Process retirement, portable Fable sources and coupled author SDK archive | | `game` | `game-physics-box2d` | `0.17.0` | `0.17.0` | `game:0.17.0` | FS.GG.Game.Physics.Box2D — optional owned Box2D.NET 3.1.654 worlds, immutable snapshots/events, pinned-profile replay and rigid local-area transfers; no rendering dependency | @@ -37,7 +37,7 @@ Registry release inventory: 18 package-bearing contracts across 9 producers; 16 | `github` | `coord-engine` | `0.113.0` | `0.112.0` | `github:0.112.0` | the `fsgg-coord-engine` CLI verb surface (claim/take/batch/who/widen/set-paths/say/landable/done/release/flush/…) + its exit-code contract, emitted from src/FS.GG.Coord.Core/Protocol.fs; shipped as the FS.GG.Coord.Cli dotnet tool | | `github` | `telemetry-host` | `0.8.0` | `0.8.0` | `github:0.8.0` | optional Linux x64 FS.GG.Telemetry.Host dotnet tool — authenticated workspace-scoped ingestion, private dashboard, protected native capture and bounded learning export; independently versioned from the github coordination coherent set | | `github` | `new-sdd-workspace` | `0.21.0` | `0.21.0` | `github:0.21.0` | the `new-sdd-workspace` scaffolder CLI (package FS.GG.NewSddWorkspace) — one-command full-stack SDD workspace creation, wrapping the FS.GG.Templates `rendering` provider (ADR-0016); shipped as a dotnet tool | -| `templates` | `fs-gg-workspace-template` | `0.19.0` | `0.19.0` | `templates:0.19.0` | FS.GG.Workspace.Template package, eight template configurations and seven `dotnet new` selectors: workspace-provider identities — `fs-gg-console` (provider `console` — minimal F# executable, no npm lane, ADR-0072 §2); `fs-gg-web` (provider `web` — F# ASP.NET Core + plain TypeScript/Vite website, ADR-0071 §3); `fs-gg-fable-game` (provider `fable-game` — F# ASP.NET Core + Fable/Elmish game client, SignalR for connection-oriented real-time traffic + plain HTTP endpoints with explicit versioned DTOs for typed request/response per ADR-0073, consuming the published `fs-gg-game-core-fable-lockstep-v1` profile per ADR-0069); `fs-gg-fable-bindings` (provider `fable-bindings` — Fable interop library over an exactly pinned npm package/declaration closure, ADR-0072 §3, first proved by the unreleased EHotwagner/babylonjsBindings reference) — plus `fs-gg-governance`, the separately registered pre-existing governance overlay template folded into this package at the same rename; `fs-gg-project-knowledge` and `fs-gg-python` are also already packaged. The current and legacy fable-game configurations share one selector. | +| `templates` | `fs-gg-workspace-template` | `0.19.1` | `0.19.1` | `templates:0.19.1` | FS.GG.Workspace.Template package, eight template configurations and seven `dotnet new` selectors: workspace-provider identities — `fs-gg-console` (provider `console` — minimal F# executable, no npm lane, ADR-0072 §2); `fs-gg-web` (provider `web` — F# ASP.NET Core + plain TypeScript/Vite website, ADR-0071 §3); `fs-gg-fable-game` (provider `fable-game` — F# ASP.NET Core + Fable/Elmish game client, SignalR for connection-oriented real-time traffic + plain HTTP endpoints with explicit versioned DTOs for typed request/response per ADR-0073, consuming the published `fs-gg-game-core-fable-lockstep-v1` profile per ADR-0069); `fs-gg-fable-bindings` (provider `fable-bindings` — Fable interop library over an exactly pinned npm package/declaration closure, ADR-0072 §3, first proved by the unreleased EHotwagner/babylonjsBindings reference) — plus `fs-gg-governance`, the separately registered pre-existing governance overlay template folded into this package at the same rename; `fs-gg-project-knowledge` and `fs-gg-python` are also already packaged. The current and legacy fable-game configurations share one selector. | | `game` | `game-skills` | `0.9.0` | `0.9.0` | `game:0.9.0` | FS.GG.Game.Skills 0.9.0 package — owner-sourced game, Fable, replay and rules guidance with schema-v2 per-file digests and workspace bundle predicates; embedded by the SDD 1.8 receiver | | `rendering` | `rendering-skills` | `0.2.0` | `0.2.0` | `rendering:0.2.0` | FS.GG.Rendering.Skills 0.2.0 package — owner-sourced SVG assets/performance and Fable workspace guidance with schema-v2 per-file digests and bundle predicates; embedded by the SDD 1.8 receiver | | `audio` | `audio-skills` | `0.1.0` | `0.1.0` | `audio:0.1.0` | FS.GG.Audio.Skills package — Audio-owned browser effect guidance with schema-v2 per-file digests; SDD 1.8 embeds the owner manifest and preserves Audio ownership in scaffold provenance | diff --git a/docs/architecture.md b/docs/architecture.md index 47e693c51..e72ab59f6 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -113,7 +113,7 @@ remain grounded in each producer's release evidence and owning plan. | [**FS.GG.Rendering**](https://github.com/FS-GG/FS.GG.Rendering) | The UI framework — Scene, layout, input, viewer/host, controls, themes; Elmish/MVU over SkiaSharp/OpenGL. | `FS.GG.UI.*` packages + the `fs-gg-ui` `dotnet new` template | | [**FS.GG.SDD**](https://github.com/FS-GG/FS.GG.SDD) | The lifecycle CLI + the typed cross-repo contract backbone. | `FS.GG.SDD.Cli` (`fsgg-sdd`) + `FS.GG.Contracts` | | [**FS.GG.Governance**](https://github.com/FS-GG/FS.GG.Governance) | Optional rule / evidence / gate tooling — a pure inference kernel, advisory by default. | `FS.GG.Governance.Cli` (`fsgg-governance`) + the reference gate set | -| [**FS.GG.Templates**](https://github.com/FS-GG/FS.GG.Templates) | Scaffold-time composition of SDD and framework producers. The registry selects `FS.GG.Workspace.Template` 0.19.0. The historical public D.5 receiver qualified `new-sdd-workspace` 0.12.0 provider/bundle selection with Templates 0.15.0 ([owning evidence](https://github.com/FS-GG/FS.GG.Templates/blob/5acf3bba234595fc6404545777c687140b4390be/docs/roadmaps/svg-workspace-01.md)); the later Creator 0.16.0 receiver outcome is scoped in §4.4. Registry selection, publication and installed-reference acceptance remain separate. | Provider descriptors, composition tooling and the `FS.GG.Workspace.Template` package | +| [**FS.GG.Templates**](https://github.com/FS-GG/FS.GG.Templates) | Scaffold-time composition of SDD and framework producers. The registry selects `FS.GG.Workspace.Template` 0.19.1. The historical public D.5 receiver qualified `new-sdd-workspace` 0.12.0 provider/bundle selection with Templates 0.15.0 ([owning evidence](https://github.com/FS-GG/FS.GG.Templates/blob/5acf3bba234595fc6404545777c687140b4390be/docs/roadmaps/svg-workspace-01.md)); the later Creator 0.16.0 receiver outcome is scoped in §4.4. Registry selection, publication and installed-reference acceptance remain separate. | Provider descriptors, composition tooling and the `FS.GG.Workspace.Template` package | | [**FS.GG.Game**](https://github.com/FS-GG/FS.GG.Game) *(extracted, ADR-0022; published P5)* | The render-independent simulation core + a thin Scene adapter — the new BCL-only bottom layer, extracted from Rendering. Developed with `fsgg-sdd` as its lifecycle. | `FS.GG.Game.Core` (BCL-only sim) + `FS.GG.Game.Render` (Scene adapter), on the org feed + nuget.org | | [**FS.GG.Audio**](https://github.com/FS-GG/FS.GG.Audio) *(onboarded, ADR-0023)* | The render-independent game-audio component — pure `AudioEffect` vocabulary, an `IAudioBackend` device seam, a mixing Engine (buses / fades / ducking / 3D), and an Elmish `Cmd` bridge. Depends on no FS-GG component — a BCL-only bottom layer, sibling to Rendering and `FS.GG.Game.Core`. First consumed cross-repo by Rendering's template `game`/`sample-pack` profiles ([ADR-0024](adr/0024-wire-fs-gg-audio-into-the-game-scaffold-profile.md) step 3, [.github#238](https://github.com/FS-GG/.github/issues/238)), shipped in `fs-gg-ui-template` 0.3.1-preview.1. Developed with `fsgg-sdd` as its lifecycle. | `FS.GG.Audio.Core` / `.Host` / `.Engine` / `.Elmish`, on the org feed + nuget.org | | [**FS.GG.Net**](https://github.com/FS-GG/FS.GG.Net) *(onboarded, ADR-0052; published 0.1.0)* | The render-independent, domain-neutral transport component — an `ITransport` / `IMessageChannel` seam with `Sequential` / `Multiplexed` client correlation and `serve` / `ServerEcho` on the server side, a client + Kestrel-server WebSocket transport, Google.Protobuf + protobuf-net codecs, a thin gRPC lifecycle bridge, and an Elmish `Cmd` / `Sub` bridge. Depends on no FS-GG component — a BCL-first bottom layer, sibling to `FS.GG.Game.Core` and `FS.GG.Audio`. Consumers are app repos (SC2 / BAR clients), not FS-GG components. Verified against a real SC2 server + an in-process gRPC service. | `FS.GG.Net.Core` / `.WebSocket` / `.WebSocket.Server` / `.Protobuf` / `.Grpc` / `.Elmish`, on the org feed + nuget.org | @@ -476,7 +476,7 @@ with explicit Studio, Tactical, Arcade and Complete bundles plus the local Caddy boundary, after installed public qualification on both feeds. The sibling `EHotwagner/S.I.R.` repository is the first forcing consumer: EHotwagner/S.I.R.#138 (merge `b17ac33b`) incorporated the `fs-gg-fable-game` scaffold, pinning `FS.GG.Workspace.Template` 0.8.0 -(its consumed version — distinct from the registry's newest-tracking 0.19.0 pin above; S.I.R. has +(its consumed version — distinct from the registry's newest-tracking 0.19.1 pin above; S.I.R. has not re-pinned) and `FS.GG.Game.Core` 0.13.0 from the public feed with zero sibling-checkout edges; S.I.R.-specific rules remain consumer-owned. @@ -646,7 +646,7 @@ product's `FS.GG.UI.*` pin), which is a different axis from the template package | `fsgg-contracts` | FS.GG.SDD | `7.6.0` | `7.6.0` | | `governance-config` | FS.GG.Governance | `0.3.0` | `0.3.0` | | `governance-reference-gate-set` | FS.GG.Governance | `1.7.0` | `1.7.0` | -| `fs-gg-ui-template` | FS.GG.Rendering | `0.32.1` | `0.32.1` | +| `fs-gg-ui-template` | FS.GG.Rendering | `0.32.3` | `0.32.3` | | `game-sim-core` | FS.GG.Game | `0.17.0` | `0.17.0` | | `wasm-shared-runtime` | FS.GG.Game | `0.6.0` | `0.6.0` | | `game-physics-box2d` | FS.GG.Game | `0.17.0` | `0.17.0` | @@ -656,7 +656,7 @@ product's `FS.GG.UI.*` pin), which is a different axis from the template package | `coord-engine` | FS-GG/.github | `0.113.0` | `0.112.0` | | `telemetry-host` | FS-GG/.github | `0.8.0` | `0.8.0` | | `new-sdd-workspace` | FS-GG/.github | `0.21.0` | `0.21.0` | -| `fs-gg-workspace-template` | FS.GG.Templates | `0.19.0` | `0.19.0` | +| `fs-gg-workspace-template` | FS.GG.Templates | `0.19.1` | `0.19.1` | | `game-skills` | FS.GG.Game | `0.9.0` | `0.9.0` | | `rendering-skills` | FS.GG.Rendering | `0.2.0` | `0.2.0` | | `audio-skills` | FS.GG.Audio | `0.1.0` | `0.1.0` | diff --git a/docs/components.md b/docs/components.md index 58f7b73ee..167cc0290 100644 --- a/docs/components.md +++ b/docs/components.md @@ -46,9 +46,9 @@ authored beside this table — package IDs are stable identity, versions are not | Component | What it does | Current version | |---|---|---| | [**FS.GG.SDD**](https://github.com/FS-GG/FS.GG.SDD) | Lifecycle CLI to scaffold a workspace and drive it from charter to ship; ships the typed cross-repo contracts | `7.6.0` | -| [**FS.GG.Rendering**](https://github.com/FS-GG/FS.GG.Rendering) | The UI framework — MVU over SkiaSharp/OpenGL with layout, input, controls and themes, plus the fs-gg-ui template | `0.2.0` / `0.32.1` | +| [**FS.GG.Rendering**](https://github.com/FS-GG/FS.GG.Rendering) | The UI framework — MVU over SkiaSharp/OpenGL with layout, input, controls and themes, plus the fs-gg-ui template | `0.2.0` / `0.32.3` | | [**FS.GG.Governance**](https://github.com/FS-GG/FS.GG.Governance) | Optional tooling that checks your artifacts against rules you control — advisory by default | `0.3.0` / `1.7.0` | -| [**FS.GG.Templates**](https://github.com/FS-GG/FS.GG.Templates) | Owns workspace providers and templates — rendering composition plus console, web, Fable-game and Fable-bindings shapes | `0.19.0` | +| [**FS.GG.Templates**](https://github.com/FS-GG/FS.GG.Templates) | Owns workspace providers and templates — rendering composition plus console, web, Fable-game and Fable-bindings shapes | `0.19.1` | | [**FS.GG.Game**](https://github.com/FS-GG/FS.GG.Game) | Game-simulation libraries — a render-independent simulation core with a companion renderer, usable as plain F# libraries | `0.17.0` / `0.6.0` / `0.9.0` | | [**FS.GG.Audio**](https://github.com/FS-GG/FS.GG.Audio) | Audio-engine libraries — synthesis, playback and mixing (buses, fades, ducking, 3D), with an optional Elmish adapter | `0.1.0` / `0.6.0` | | [**FS.GG.Net**](https://github.com/FS-GG/FS.GG.Net) | Networking/transport libraries — protobuf messaging over WebSocket or gRPC, render-independent, with an optional Elmish adapter | `0.6.0` | diff --git a/docs/consumer/versioning-and-updates.md b/docs/consumer/versioning-and-updates.md index b2ef055a1..00663c3ef 100644 --- a/docs/consumer/versioning-and-updates.md +++ b/docs/consumer/versioning-and-updates.md @@ -42,9 +42,9 @@ authored beside this table — package IDs are stable identity, versions are not | Component | What it does | Current version | |---|---|---| | [**FS.GG.SDD**](https://github.com/FS-GG/FS.GG.SDD) | Lifecycle CLI to scaffold a workspace and drive it from charter to ship; ships the typed cross-repo contracts | `7.6.0` | -| [**FS.GG.Rendering**](https://github.com/FS-GG/FS.GG.Rendering) | The UI framework — MVU over SkiaSharp/OpenGL with layout, input, controls and themes, plus the fs-gg-ui template | `0.2.0` / `0.32.1` | +| [**FS.GG.Rendering**](https://github.com/FS-GG/FS.GG.Rendering) | The UI framework — MVU over SkiaSharp/OpenGL with layout, input, controls and themes, plus the fs-gg-ui template | `0.2.0` / `0.32.3` | | [**FS.GG.Governance**](https://github.com/FS-GG/FS.GG.Governance) | Optional tooling that checks your artifacts against rules you control — advisory by default | `0.3.0` / `1.7.0` | -| [**FS.GG.Templates**](https://github.com/FS-GG/FS.GG.Templates) | Owns workspace providers and templates — rendering composition plus console, web, Fable-game and Fable-bindings shapes | `0.19.0` | +| [**FS.GG.Templates**](https://github.com/FS-GG/FS.GG.Templates) | Owns workspace providers and templates — rendering composition plus console, web, Fable-game and Fable-bindings shapes | `0.19.1` | | [**FS.GG.Game**](https://github.com/FS-GG/FS.GG.Game) | Game-simulation libraries — a render-independent simulation core with a companion renderer, usable as plain F# libraries | `0.17.0` / `0.6.0` / `0.9.0` | | [**FS.GG.Audio**](https://github.com/FS-GG/FS.GG.Audio) | Audio-engine libraries — synthesis, playback and mixing (buses, fades, ducking, 3D), with an optional Elmish adapter | `0.1.0` / `0.6.0` | | [**FS.GG.Net**](https://github.com/FS-GG/FS.GG.Net) | Networking/transport libraries — protobuf messaging over WebSocket or gRPC, render-independent, with an optional Elmish adapter | `0.6.0` | diff --git a/docs/registry/compatibility.md b/docs/registry/compatibility.md index 36fa5134b..06280f474 100644 --- a/docs/registry/compatibility.md +++ b/docs/registry/compatibility.md @@ -168,7 +168,7 @@ authored `Version` cells of the Versioned contracts table (#748).* | `governance-descriptor` | FS.GG.Governance | `1` | — | | `governance-config` | FS.GG.Governance | `0.3.0` | `0.3.0` | | `governance-reference-gate-set` | FS.GG.Governance | `1.7.0` | `1.7.0` | -| `fs-gg-ui-template` | FS.GG.Rendering | `0.32.1` | `0.32.1` | +| `fs-gg-ui-template` | FS.GG.Rendering | `0.32.3` | `0.32.3` | | `shared-build-config` | FS-GG/.github | `1.1.0` | — | | `registry-schema` | FS.GG.SDD | `2` | — | | `skill-registry` | FS-GG/.github | `3` | — | @@ -182,7 +182,7 @@ authored `Version` cells of the Versioned contracts table (#748).* | `coord-engine` | FS-GG/.github | `0.113.0` | `0.112.0` | | `telemetry-host` | FS-GG/.github | `0.8.0` | `0.8.0` | | `new-sdd-workspace` | FS-GG/.github | `0.21.0` | `0.21.0` | -| `fs-gg-workspace-template` | FS.GG.Templates | `0.19.0` | `0.19.0` | +| `fs-gg-workspace-template` | FS.GG.Templates | `0.19.1` | `0.19.1` | | `game-skills` | FS.GG.Game | `0.9.0` | `0.9.0` | | `rendering-skills` | FS.GG.Rendering | `0.2.0` | `0.2.0` | | `audio-skills` | FS.GG.Audio | `0.1.0` | `0.1.0` | diff --git a/registry/CHANGELOG.md b/registry/CHANGELOG.md index 6fb6d612c..d07c0c2d4 100644 --- a/registry/CHANGELOG.md +++ b/registry/CHANGELOG.md @@ -1,5 +1,23 @@ # Registry changelog +## 2026-10-22 — reconcile published Workspace.Template 0.19.1 (FS-GG/.github#4709) + +Reconcile `fs-gg-workspace-template` source/package **0.19.1** and `fs-gg-templates/v0.19.1` +after original publisher [39745222454/a1](https://github.com/FS-GG/FS.GG.Templates/actions/runs/39745222454) +from protected `1e95dddb6326d276773154df1336599907d8dbfe` (FS.GG.Templates#730). Original artifact +12410648325 (`16736d87…`) equals the GitHub Packages and release asset; the signed nuget.org archive +(`5d1886c3…`) matches all 512 signature-excluded payload entries. Annotated tag `515783ac…` peels to +`1e95dddb`. 0.19.0 stays historical; its scoped Xantham receivers are not extended to 0.19.1. + +Also flip `fs-gg-ui-template` source/package/tag to **0.32.3**: protected publisher +[39817794639/a1](https://github.com/FS-GG/FS.GG.Rendering/actions/runs/39817794639) (executor `fc2b177e`) +published all 19 original `4ec6eafb` archives (artifact 12305198394, custody `7dbd4329…`) to both feeds +with matching readbacks; tags converge by same-intent settlement 39774890888/a1 (original transport +outcome Unknown). `feed-autofix` is audit-only since GS2-08.9 and cannot flip this row. The +`templates -> rendering` edge now records Templates PR728 (`2f8d400a`) source selection of 0.32.3; +published Workspace 0.19.1 still carries 0.32.1, and Workspace publication, the public default and +full Wizard qualification remain open. + ## 2026-10-22 — prospective coherent113 Claude Code usage capture (#4801) Select SOURCE0.113.0 for CLI/Kit/Drivers over published112 to carry the Claude Code diff --git a/registry/dependencies.yml b/registry/dependencies.yml index 89e034fa6..aa9d7254f 100644 --- a/registry/dependencies.yml +++ b/registry/dependencies.yml @@ -542,9 +542,13 @@ contracts: # 5c74f2a and all 19 archives were read back from GitHub Packages and nuget.org. It adds the # source-complete authoring, input, runtime and presentation surfaces while preserving # omitted/default sdd, explicit none, typed-sdd and legacy spec-kit. - version: "0.32.1" # SOURCE: original producer 6c9f766fdd91483c2de6f061e75589e94852a265; all three 0.32.1 tags bind that source. - package-version: "0.32.1" # FEED: accepted publisher 37461402933/a1 at executor 6ea40861d15b581735655fbe7253673bf1cee907; 19 original packages acknowledged and matched on both feeds. Notification, receiver adoption and installed use remain open. - package-tag: "fs-gg-ui-template/v0.32.1" + version: "0.32.3" # SOURCE: original producer 4ec6eafbbbf02264db9b0db4780c590abe0bf9cd (source run 39509314882/a1, artifact 12305198394, custody 7dbd4329); all three 0.32.3 tags converge on it by same-intent settlement 39774890888/a1 (original transport outcome Unknown). + package-version: "0.32.3" # FEED: protected publisher 39817794639/a1 at executor fc2b177e22d66032fe8c2ead4fc3e9845fc2a350; all 19 original archives published to both feeds with matching readbacks; nuget.org entries equal the originals excluding .signature.p7s. Templates source adoption is #728 (2f8d400a); Workspace publication, public default and full Wizard acceptance remain open (FS-GG/.github#4709). + package-tag: "fs-gg-ui-template/v0.32.3" + # PRIOR 0.32.1 publication (historical): + # version: "0.32.1" # SOURCE: original producer 6c9f766fdd91483c2de6f061e75589e94852a265; all three 0.32.1 tags bind that source. + # package-version: "0.32.1" # FEED: accepted publisher 37461402933/a1 at executor 6ea40861d15b581735655fbe7253673bf1cee907; 19 original packages acknowledged and matched on both feeds. Notification, receiver adoption and installed use remain open. + # package-tag: "fs-gg-ui-template/v0.32.1" # visibility: PUBLIC — Feature 218 (FS.GG.Rendering#26): the whole coherent set (template + 16 FS.GG.UI.* libs) flipped private→PUBLIC so consumer-CI tokens install+restore without exit-103 (internal unavailable — FS-GG is a free, non-enterprise org; public matches the FS.GG.*.Cli norm) owner: rendering surface: "dotnet new fs-gg-ui (template/base) + FS.GG.UI.* framework packages" @@ -1043,9 +1047,13 @@ contracts: # The remaining P4 provider implementation ships in FS.GG.Workspace.Template; this wizard identity # is published and selectable, not a pending rollout phase. - id: fs-gg-workspace-template - version: "0.19.0" # CURRENT SOURCE: protected 8952e1c5753b0abc972154c7596ddc8da772b271; published coherent successor, with unchanged Rendering 0.32.1 provider/Fable pins. - package-version: "0.19.0" # CURRENT FEED: original release 38489621342/a1; both feeds match all 504 signature-excluded payload entries. Original/GitHub/release SHA256 a30bf66afe7a226ff618bb112ed44f20b502fd5dd5c9999e7c8d29feae10631a; signed NuGet raw SHA256 187c995806bb2f22db67c8a9a67c251f46f339bf6350b8051035935d308b497f. Scoped public Xantham receivers accepted; clean installed WASM and broader defaults/retained upgrades remain separate. - package-tag: "fs-gg-templates/v0.19.0" # Annotated unsigned tag 49b52e100bc373ad33647ffac27e41f737a4a33b peels to 8952e1c5753b0abc972154c7596ddc8da772b271. Prior 0.18.2/0.18.1 releases and Portal receiver evidence remain immutable in registry/CHANGELOG.md. + version: "0.19.1" # CURRENT SOURCE: protected 1e95dddb6326d276773154df1336599907d8dbfe (FS.GG.Templates#730); published coherent patch successor delivering byte-exact C sources in fable-game scaffolds, with unchanged Rendering 0.32.1 provider/Fable pins. + package-version: "0.19.1" # CURRENT FEED: original release 39745222454/a1, original artifact 12410648325; both feeds match all 512 signature-excluded payload entries. Original/GitHub/release SHA256 16736d87b98a8346b0f6bac68a8e128ee0f60be4101331b1f16848b11538d81b; signed NuGet raw SHA256 5d1886c37b6e6a0d64c3998ee23e76b4c5ba8b8a0c2136200c377d7bbab7d0c6. + package-tag: "fs-gg-templates/v0.19.1" # Annotated unsigned tag 515783ac86157b4e797c292fd79e6de361f28fa4 peels to 1e95dddb6326d276773154df1336599907d8dbfe. Prior 0.19.0/0.18.2/0.18.1 releases remain immutable in registry/CHANGELOG.md history. + # PRIOR 0.19.0 publication and receiver evidence (historical): + # version: "0.19.0" # CURRENT SOURCE: protected 8952e1c5753b0abc972154c7596ddc8da772b271; published coherent successor, with unchanged Rendering 0.32.1 provider/Fable pins. + # package-version: "0.19.0" # CURRENT FEED: original release 38489621342/a1; both feeds match all 504 signature-excluded payload entries. Original/GitHub/release SHA256 a30bf66afe7a226ff618bb112ed44f20b502fd5dd5c9999e7c8d29feae10631a; signed NuGet raw SHA256 187c995806bb2f22db67c8a9a67c251f46f339bf6350b8051035935d308b497f. Scoped public Xantham receivers accepted; clean installed WASM and broader defaults/retained upgrades remain separate. + # package-tag: "fs-gg-templates/v0.19.0" # Annotated unsigned tag 49b52e100bc373ad33647ffac27e41f737a4a33b peels to 8952e1c5753b0abc972154c7596ddc8da772b271. Prior 0.18.2/0.18.1 releases and Portal receiver evidence remain immutable in registry/CHANGELOG.md. # PRIOR 0.18.2 publication and receiver evidence (historical): # version: "0.18.2" # CURRENT SOURCE: protected 20c009bc6728302f9ed06fdf49cb2e8bd19e417d, annotated fs-gg-templates/v0.18.2; provider and packed Fable Rendering 0.32.1 pins remain unchanged. # package-version: "0.18.2" # CURRENT FEED: original release 38014935496/a1, original artifact 11655584727 and release asset 626755861; both feeds match all 480 signature-excluded payload entries. Original/GitHub/release SHA256 789254f599fbb93114e5c9a9381e1e8a8c29529f69e8b804b45fbf232f9e850a; signed nuget.org raw SHA256 496aad0e89496719bc543edc6ffbf829a82307862e630ba4e174e374ac11cc4e. Public direct A accepted (operation932c8bd5; receipt cf966a11). Retained B preservation/apply/remove/recovery accepted (4789d3ea); ordinary Server.Tests accepted20/20 (receipt52d18d42). Installed public Portal provider C accepted (03c0b1a7); defaults and full Wizard adoption remain pending. @@ -1131,11 +1139,12 @@ dependencies: # SINCE (2026-07-11, coordinated full-platform release): FS.GG.Templates 0.4.0 re-pinned its provider # descriptor (providers/rendering.providers.yml → FS.GG.UI.Template) to fs-gg-ui-template 0.8.0, so the # edge now reads @0.8.0; the 0.3.1-preview.1 pin above is HISTORICAL. - # SELECTED @0.32.1: Templates PR673 merge 784c4af52c4f0d426268e554ca58fa97125c2710 - # adopts the published Rendering provider through reviewed source (TSDD-KNOWLEDGE-01.4). - # Published-feed installed receiver qualification remains open. Packed Fable SVG pins stay - # 0.31.0; provider lifecycle defaults and Workspace Template 0.18.0 publication are unchanged. - - { from: templates, to: rendering, via: "fs-gg-ui-template@0.32.1 composed via scaffold-provider (lifecycle=sdd); SVG preview directly pins UI.Scene/SvgBrowser/KeyboardInput 0.31.0" } + # SELECTED @0.32.3: Templates PR728 merge 2f8d400a6a670568044d607a1ac0eb2c7c655a29 adopts + # published Rendering 0.32.3 through reviewed source: the provider pin plus the fable-game + # SvgFoundation/Studio defaults and codec/tactical refs (FS-GG/.github#4709). Published Workspace + # 0.19.1 still carries 0.32.1; Workspace publication, the public default and installed/full Wizard + # qualification remain open. Prior: SELECTED @0.32.1 via Templates PR673 merge 784c4af5 (historical). + - { from: templates, to: rendering, via: "fs-gg-ui-template@0.32.3 composed via scaffold-provider (lifecycle=sdd); fable-game SvgFoundation/Studio defaults pin UI.Scene/SvgBrowser/KeyboardInput 0.32.3" } # ADR-0022 P5 (Rendering#155): Rendering's template game/sample-pack profiles + Canvas.Tests consume the # extracted bottom layer. Rendering (upstream) reaching further UP to the new sibling bottom layer is # allowed — Game.Core reaches up to nothing; this is the template's game-sim primitive source. @@ -1362,9 +1371,10 @@ coherence: it does not establish receiver adoption. Published Rendering 0.32.1 inputs were qualified through source-built Templates 208e and Rendering caller 998f in accepted full run 37506865594/a1 (180 provider and 12 browser passes). - Current Workspace 0.19.0 from protected 8952e1c5753b0abc972154c7596ddc8da772b271 - is published on both feeds by original 38489621342/a1; all 504 signature-excluded - payload entries match. Scoped public Xantham receivers passed; clean installed + Current Workspace 0.19.1 from protected 1e95dddb6326d276773154df1336599907d8dbfe + is published on both feeds by original 39745222454/a1; all 512 signature-excluded + payload entries match. Historical Workspace 0.19.0 (8952e1c5753b0abc972154c7596ddc8da772b271, + original 38489621342/a1, 504 entries) had scoped public Xantham receivers; clean installed WASM acceptance and broader defaults/retained upgrades remain separate. Historical Templates protected 20c009bc6728302f9ed06fdf49cb2e8bd19e417d delivers Workspace 0.18.2 with unchanged provider and packed Fable Rendering 0.32.1 pins. Original @@ -1376,8 +1386,8 @@ coherence: those receivers do not establish arbitrary production checkout or fleet adoption. The axis stays incomplete until current protected defaults and actual installed receivers qualify that remaining scope. Lifecycle defaults are unchanged. - resolved_by: "Selected axis evidence: SDD 2.1.0 promotion 37114843541 / .github #4146; Rendering 0.32.1 publisher 37461402933 and accepted full public-input receiver 37506865594; Current Workspace 0.19.0 source 8952e1c5753b0abc972154c7596ddc8da772b271 and original both-feed publisher 38489621342/a1; historical Templates 0.18.2 source 20c009bc6728302f9ed06fdf49cb2e8bd19e417d and publisher 38014935496/a1; public direct A accepted (operation932c8bd5; receipt cf966a11). Prior 0.18.1 publisher 37521553159/a1 and protected d9fe65ea8a456f59d663f20c647a38a195e13c2c remain historical. Historical Workspace 0.18.0 release 37138971862 and earlier axis closures remain preserved." - impact: "Declared capability floor remains 2.1.0. Workspace source and published package are 0.19.0 with Rendering 0.32.1 provider/Fable pins. Scoped public Xantham receivers are accepted; clean installed WASM and broader defaults/retained upgrades remain separate. Fresh installed/default Workspace and full Wizard acceptance remain pending; no complete coherence or installed-use claim follows from publication." + resolved_by: "Selected axis evidence: SDD 2.1.0 promotion 37114843541 / .github #4146; Rendering 0.32.1 publisher 37461402933 and accepted full public-input receiver 37506865594; Current Workspace 0.19.1 source 1e95dddb6326d276773154df1336599907d8dbfe and original both-feed publisher 39745222454/a1; historical Workspace 0.19.0 source 8952e1c5753b0abc972154c7596ddc8da772b271 and publisher 38489621342/a1; historical Templates 0.18.2 source 20c009bc6728302f9ed06fdf49cb2e8bd19e417d and publisher 38014935496/a1; public direct A accepted (operation932c8bd5; receipt cf966a11). Prior 0.18.1 publisher 37521553159/a1 and protected d9fe65ea8a456f59d663f20c647a38a195e13c2c remain historical. Historical Workspace 0.18.0 release 37138971862 and earlier axis closures remain preserved." + impact: "Declared capability floor remains 2.1.0. Workspace source and published package are 0.19.1 with Rendering 0.32.1 provider/Fable pins. Scoped public Xantham receivers are accepted for historical 0.19.0; clean installed WASM and broader defaults/retained upgrades remain separate. Fresh installed/default Workspace and full Wizard acceptance remain pending; no complete coherence or installed-use claim follows from publication." tracking: "https://github.com/FS-GG/FS.GG.Templates/pull/676; SVG-COHERENCE-01.8; TSDD-KNOWLEDGE-01; ADR-0008; historical Templates#667/#673, .github#2928, SDD#916, Templates#432 and original .github#85/#87" - id: governance-overlay-populated diff --git a/tests/feed-coherence/run.sh b/tests/feed-coherence/run.sh index 45dfc6ad5..b60f42777 100755 --- a/tests/feed-coherence/run.sh +++ b/tests/feed-coherence/run.sh @@ -555,9 +555,9 @@ if len(rows) != 1: raise SystemExit(f"expected exactly one fs-gg-ui-template row, found {len(rows)}") row = rows[0] expected = { - "version": "0.32.1", - "package-version": "0.32.1", - "package-tag": "fs-gg-ui-template/v0.32.1", + "version": "0.32.3", + "package-version": "0.32.3", + "package-tag": "fs-gg-ui-template/v0.32.3", } for key, value in expected.items(): if str(row.get(key)) != value: @@ -643,16 +643,16 @@ new_sdd_registry_block="$(sed -n '/^ - id: new-sdd-workspace$/,/^ - id: fs-gg- workspace_registry_block="$(sed -n '/^ - id: fs-gg-workspace-template$/,/^ - id: game-skills$/p' "$REPO_ROOT/registry/dependencies.yml")" architecture_template_comparator_is_current() { local subject="$1" - grep -qF "registry's newest-tracking 0.19.0 pin above" "$subject" \ + grep -qF "registry's newest-tracking 0.19.1 pin above" "$subject" \ && ! grep -qF "registry's newest-tracking 0.13.0 pin above" "$subject" } if [ "$(grep -Fc '| [**FS.GG.Templates**]' "$ARCH")" -eq 1 ] \ - && [[ "$arch_templates_rows" == *'FS.GG.Workspace.Template` 0.19.0'* ]] \ + && [[ "$arch_templates_rows" == *'FS.GG.Workspace.Template` 0.19.1'* ]] \ && [[ "$arch_templates_rows" == *'`new-sdd-workspace` 0.12.0'* ]] \ && [ "$(grep -Fc '| [**FS.GG.Templates**]' "$COMPONENTS")" -eq 1 ] \ - && [[ "$component_templates_rows" == *'| `0.19.0` |'* ]] \ + && [[ "$component_templates_rows" == *'| `0.19.1` |'* ]] \ && [ "$(grep -Fc '| `fs-gg-workspace-template` | FS.GG.Templates |' "$ARCH")" -eq 1 ] \ - && [[ "$workspace_contract_rows" == *'| `0.19.0` | `0.19.0` |'* ]] \ + && [[ "$workspace_contract_rows" == *'| `0.19.1` | `0.19.1` |'* ]] \ && [ "$(grep -Fc '| `game-skills` | FS.GG.Game |' "$ARCH")" -eq 1 ] \ && [[ "$game_skills_contract_rows" == *'| `0.9.0` | `0.9.0` |'* ]] \ && [ "$(grep -Fc '| `fs-gg-workspace-template` | Templates |' "$ARCH")" -eq 1 ] \ @@ -684,9 +684,9 @@ fi STALE_ARCH="$WORK/architecture-stale-template-comparator.md" cp "$ARCH" "$STALE_ARCH" -sed -i "s/registry's newest-tracking 0.19.0 pin above/registry's newest-tracking 0.13.0 pin above/" "$STALE_ARCH" +sed -i "s/registry's newest-tracking 0.19.1 pin above/registry's newest-tracking 0.13.0 pin above/" "$STALE_ARCH" if cmp -s "$ARCH" "$STALE_ARCH"; then - bad "stale Templates comparator mutation is non-vacuous" "the 0.19.0 comparator was absent" + bad "stale Templates comparator mutation is non-vacuous" "the 0.19.1 comparator was absent" elif ! architecture_template_comparator_is_current "$STALE_ARCH"; then ok "reverting the current Templates comparator to 0.13.0 makes the prose guard red" else From 20ba0caddc9961adc92157d528c0f6c90dcd4ef2 Mon Sep 17 00:00:00 2001 From: EHotwagner Date: Thu, 22 Oct 2026 21:14:18 +0200 Subject: [PATCH 2/2] Regenerate skill digests and fix the current Workspace sentence (Refs #4709) Review of b043d0b7: - M1: the regenerated publishing-and-deployment SKILL.md bodies changed their digest. This regenerates registry/driver-skill-manifest.json (scripts/generate-driver-manifest --write) and reconciles the matching registry/skills.yml row to 8568d1fa..., as #4794 did. - M2: docs/architecture.md still named Workspace package-version 0.19.0 in the sentence that "newest-tracking ... pin above" refers to. It now says 0.19.1, and the feed-coherence comparator asserts that sentence (reverting it fails 44/45). - Restores the full prior SELECTED @0.32.1 edge history verbatim. Co-Authored-By: Claude Opus 5.5 --- docs/architecture.md | 2 +- registry/dependencies.yml | 6 +++++- registry/driver-skill-manifest.json | 6 +++--- registry/skills.yml | 2 +- tests/feed-coherence/run.sh | 1 + 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/architecture.md b/docs/architecture.md index e72ab59f6..46fed4eb9 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -437,7 +437,7 @@ README must name the same version), and proves the governance matrix end-to-end adds a top-level distinction that the current rendering-only path does not need: `new-sdd-workspace --template` selects a provider, while `--profile` is interpreted only by that provider. Omission preserves the current rendering behaviour during the compatibility window. -FS.GG.Templates owns one `FS.GG.Workspace.Template` package (registry `package-version` **0.19.0** — +FS.GG.Templates owns one `FS.GG.Workspace.Template` package (registry `package-version` **0.19.1** — the feed's literal newest, per the versions table in §5; published to both feeds and registry-active through SVG-COHERENCE-01.8) with eight configurations and seven selectors: the current and legacy fable-game configurations share one selector. The existing diff --git a/registry/dependencies.yml b/registry/dependencies.yml index aa9d7254f..2317643cf 100644 --- a/registry/dependencies.yml +++ b/registry/dependencies.yml @@ -1143,7 +1143,11 @@ dependencies: # published Rendering 0.32.3 through reviewed source: the provider pin plus the fable-game # SvgFoundation/Studio defaults and codec/tactical refs (FS-GG/.github#4709). Published Workspace # 0.19.1 still carries 0.32.1; Workspace publication, the public default and installed/full Wizard - # qualification remain open. Prior: SELECTED @0.32.1 via Templates PR673 merge 784c4af5 (historical). + # qualification remain open. + # PRIOR (historical) SELECTED @0.32.1: Templates PR673 merge 784c4af52c4f0d426268e554ca58fa97125c2710 + # adopts the published Rendering provider through reviewed source (TSDD-KNOWLEDGE-01.4). + # Published-feed installed receiver qualification remains open. Packed Fable SVG pins stay + # 0.31.0; provider lifecycle defaults and Workspace Template 0.18.0 publication are unchanged. - { from: templates, to: rendering, via: "fs-gg-ui-template@0.32.3 composed via scaffold-provider (lifecycle=sdd); fable-game SvgFoundation/Studio defaults pin UI.Scene/SvgBrowser/KeyboardInput 0.32.3" } # ADR-0022 P5 (Rendering#155): Rendering's template game/sample-pack profiles + Canvas.Tests consume the # extracted bottom layer. Rendering (upstream) reaching further UP to the new sibling bottom layer is diff --git a/registry/driver-skill-manifest.json b/registry/driver-skill-manifest.json index 8998009b7..0c607b823 100644 --- a/registry/driver-skill-manifest.json +++ b/registry/driver-skill-manifest.json @@ -2459,12 +2459,12 @@ { "id": "publishing-and-deployment", "scope": "operator", - "sha256": "b2f1c2f206d0c7756023e0d6c4e7d6b13f7c1fa4b43b1292d2af6cc33734acaf", - "tree-sha256": "f19e9a2a4d21ce297bdd7b8cbbb365a8bd61be215386e1309968d24fa5fda0f4", + "sha256": "8568d1fae0fd885d2380f5ac6d387645f95bdce5fc8a27ffc5e12e628955855b", + "tree-sha256": "862ee2f958eaf29a6a0b1e7242a2564d214d123c38216be9a40b6d1eecfac044", "files": [ { "path": "SKILL.md", - "sha256": "b2f1c2f206d0c7756023e0d6c4e7d6b13f7c1fa4b43b1292d2af6cc33734acaf", + "sha256": "8568d1fae0fd885d2380f5ac6d387645f95bdce5fc8a27ffc5e12e628955855b", "executable": false }, { diff --git a/registry/skills.yml b/registry/skills.yml index d06c60230..faab4c24f 100644 --- a/registry/skills.yml +++ b/registry/skills.yml @@ -398,7 +398,7 @@ skills: # publishing-and-deployment — homed beside its owner+predicate siblings and reconciled verbatim from # .github's producer manifest by `--write` (.github#299/.github#1200). The position # and this annotation are generated; the row's bytes are the manifest's. - - { id: publishing-and-deployment,scope: operator,owner: .github, source: .github/.claude/skills/publishing-and-deployment/SKILL.md, sha256: b2f1c2f206d0c7756023e0d6c4e7d6b13f7c1fa4b43b1292d2af6cc33734acaf, materializes-when: "false" } + - { id: publishing-and-deployment,scope: operator,owner: .github, source: .github/.claude/skills/publishing-and-deployment/SKILL.md, sha256: 8568d1fae0fd885d2380f5ac6d387645f95bdce5fc8a27ffc5e12e628955855b, materializes-when: "false" } # drive-board-best — homed beside its owner+predicate siblings and reconciled verbatim from # .github's producer manifest by `--write` (.github#299/.github#1200). The position # and this annotation are generated; the row's bytes are the manifest's. diff --git a/tests/feed-coherence/run.sh b/tests/feed-coherence/run.sh index b60f42777..fbb4c523c 100755 --- a/tests/feed-coherence/run.sh +++ b/tests/feed-coherence/run.sh @@ -644,6 +644,7 @@ workspace_registry_block="$(sed -n '/^ - id: fs-gg-workspace-template$/,/^ - i architecture_template_comparator_is_current() { local subject="$1" grep -qF "registry's newest-tracking 0.19.1 pin above" "$subject" \ + && grep -qF 'package (registry `package-version` **0.19.1** —' "$subject" \ && ! grep -qF "registry's newest-tracking 0.13.0 pin above" "$subject" } if [ "$(grep -Fc '| [**FS.GG.Templates**]' "$ARCH")" -eq 1 ] \