Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
96251bb
feat: capture partial native usage through existing telemetry spool
EHotwagner Oct 18, 2026
eed171e
docs: record partial native telemetry source boundary and operating l…
EHotwagner Oct 18, 2026
9e4f050
fix: keep passive projection JSON node construction explicit
EHotwagner Oct 18, 2026
d4724b4
fix: annotate passive decoder and fixture overload boundaries
EHotwagner Oct 18, 2026
8c899fe
test: cover passive persistence crash cuts and status failure
EHotwagner Oct 18, 2026
536c1f9
fix: preserve strict native decoding and order the complete passive s…
EHotwagner Oct 18, 2026
9b3c717
fix: type passive capture boundaries and nested fixture access
EHotwagner Oct 18, 2026
112398e
fix: disambiguate passive xUnit assertion arguments
EHotwagner Oct 18, 2026
523bade
fix: rotate bounded passive heads without starving independent delivery
EHotwagner Oct 18, 2026
f72f9fe
Merge remote-tracking branch 'origin/main' into routine/passive-nativ…
EHotwagner Oct 18, 2026
74bad72
fix: advance fair drain cursor only across attempted batches
EHotwagner Oct 18, 2026
1a83ebc
test: observe forbidden passive callbacks outside application catches
EHotwagner Oct 18, 2026
b88c95a
build: prepare coherent 0.106 source against accepted 0.105 predecessor
EHotwagner Oct 18, 2026
2530ffc
fix: verify assertion execution and assemble final qualification
EHotwagner Oct 18, 2026
cba6fb1
docs: reconcile passive capture knowledge and coherent 0.106 projections
EHotwagner Oct 18, 2026
91bca10
fix: align current release notes and artifact identity controls
EHotwagner Oct 18, 2026
a91d94b
ci: execute telemetry assertions before expensive qualification and r…
EHotwagner Oct 18, 2026
ef8eb92
fix: classify passive admission refusals without masking storage faults
EHotwagner Oct 18, 2026
5d4edeb
docs: bind repaired passive admission and early qualification evidence
EHotwagner Oct 18, 2026
b21abce
test: exercise scoped and fresh unauthenticated passive admission sep…
EHotwagner Oct 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/skills/atlas/assets/seed/catalog.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"citations":[{"path":".agents/skills/work-programme/SKILL.md","repository":"FS-GG/.github","revision":"ef8eb92f4e8444cf3bf0888d44336c53e229a26a","sha256":"7545dc7f8228b63f531edf087d0fd6535de7e4f620e20a5aa1cebcbef04ffb62"},{"path":".github/workflows/coord-engine.yml","repository":"FS-GG/.github","revision":"a91d94bc07a5696c0c80fb89a6171fbd85d771d4","sha256":"406e5b64320fd58ccb448e6da742d1abbf53efca6369543ab7a88781345c600d"}],"conflictsWith":[],"id":"platform/executable-qualification-and-final-assembly","kind":"lesson","recordedAt":"2026-10-18T10:43:19Z","repository":"FS-GG/.github","schema":"fsgg.atlas/1","status":"recorded","summary":"Before costly qualification, verify that the maintained runner actually invokes the changed assertions and that negative controls fail through that same route; compile success or a zero-test invocation does not establish executable coverage. Assemble compatible source, version, Atlas and delivery-closure changes and reconcile the intended final base before the expensive full run. Defer reporting-only followups when they would invalidate that qualification; this is not a blanket main freeze or permission to bypass required checks. Existing forward recovery retains unavailable original outcomes and reservations as Unknown without repeated unavailable-history searches. Source guidance delivery remains distinct from installed skill adoption and measured process benefit.\n\nThe maintained coord-engine workflow implements early executable feedback after build: Core tests and non-vacuity, focused workspace telemetry tests with a five-minute step bound and non-vacuity, then the full mandatory CLI tests and non-vacuity before browser/package/parity qualification. The original forty-minute job bound remains unchanged. Normal TRX and --blame test-sequence artifacts are retained by an always step; no memory dump is enabled. Focused execution is diagnostic evidence, not full qualification or permission to skip the later suite. Earlier opaque failures and later concrete assertion failures retain their own evidence; a repair does not explain an unobserved original or establish timing savings, installed adoption or current runtime acceptance.","supersedes":["cad13b6653fd9f811e67d13c5f01f9dec047f8c384097cee01dd2e2db39e539f"],"tags":["qualification","coverage","delivery","process","recovery"],"title":"Verify executable coverage early and assemble compatible changes before costly qualification"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"citations":[{"path":"src/FS.GG.Coord.Core/TelemetryStore.fs","repository":"FS-GG/.github","revision":"ef8eb92f4e8444cf3bf0888d44336c53e229a26a","sha256":"8032321c251a03662111e9965845360eb8fd92cda0ce9e220116a81cf4a7e4e2"},{"path":"src/FS.GG.Coord.Cli/SkillTelemetryReaders.fs","repository":"FS-GG/.github","revision":"ef8eb92f4e8444cf3bf0888d44336c53e229a26a","sha256":"a510716436479424894fbd4787ee545c9b37e4090644066310b55b3ada439b7d"},{"path":"src/FS.GG.Coord.Cli/SkillTelemetryAdapter.fs","repository":"FS-GG/.github","revision":"ef8eb92f4e8444cf3bf0888d44336c53e229a26a","sha256":"74d61ae2ce23b4e6fafd940ccd924374d4a8060db0c65693b2b69e69d840b857"},{"path":"src/FS.GG.Coord.Cli/WorkspaceTelemetryApplication.fs","repository":"FS-GG/.github","revision":"ef8eb92f4e8444cf3bf0888d44336c53e229a26a","sha256":"7c1c889ceb8022f66650623016e6e71493b0eba6dc755272a62800095c8ef150"},{"path":"src/FS.GG.Coord.Cli/TelemetryStoreApplication.fs","repository":"FS-GG/.github","revision":"ef8eb92f4e8444cf3bf0888d44336c53e229a26a","sha256":"04fa2aeda375b1bb5f5e1e9a4c8b9983146c8fda6c7388933077e67d1805f025"},{"path":"src/FS.GG.Coord.Cli/TelemetryApplication.fs","repository":"FS-GG/.github","revision":"ef8eb92f4e8444cf3bf0888d44336c53e229a26a","sha256":"fdfa123c0175440004e239ebd49046684c687538cd02269504ac60c84245ff8b"}],"conflictsWith":[],"id":"contract/passive-native-usage-observations","kind":"contract","recordedAt":"2026-10-18T10:43:19Z","repository":"FS-GG/.github","schema":"fsgg.atlas/1","status":"recorded","summary":"At the cited prospective 0.106 source candidate, explicit selected Codex rollout files share the maintained strict native decoder, including recursive duplicate-property and strict UTF8 refusal, and project actual optional response counters through provider-usage-observation/1. Item, inventory and terminal attribution stay unknown/partial; these canonical-only facts never enter qualified item totals. Stable native thread/turn/response identities, a finite serialized producer index, private pending intent and existing immutable spool retain corrections and exact replay. Local enqueue/reporting make no receiver or App Server call. Initial capture-only setup skips credential presence and reports receiver unverified. Same-owner state cloning/migration is unsupported without original state/fence reconciliation; one selected association root is the supported ownership boundary.\n\nReceiver admission refuses cross-owner changes. A complete bounded drain census retains the earliest pending head for each structural scope/source/generation, fencing numeric successors behind uncertain or durable-but-not-applied receipts. Candidate scheduling rotates eligible independent heads and ordinary traffic through the existing sixteen-envelope quantum with one private advisory cursor of at most 256 bytes. The cursor advances under the configuration lock immediately before each actual head attempt, rather than skipping a whole selected quantum. Expired shared deadline/cancellation stops new head attempts; canceled lookup cannot proceed to Submit. Missing/invalid cursor state resets deterministic order. Cursor crashes affect ordering only; queued bytes, receipts and authority remain unchanged. No fixed elapsed-time or eight-pass service guarantee follows; transport timeouts and exact-source tests remain separate.\n\nThe receiver application classifies exactly passive-observation-authenticated-owner-required, passive-observation-owner-mismatch and passive-observation-kind-is-immutable as semantic admission refusals. Their terminal rejected result is distinct from a genuine storage/unknown failure, which keeps the original ready bytes for reconciliation; no broad passive-error prefix turns storage failure into successful cleanup. Unsupported receiver data remains retained at the producer according to its original delivery state. Earlier opaque failures remain Unknown where no determining evidence exists; a newly identified admission-classification defect does not retroactively explain them. Original focused failures remain retained separately from this reviewed source correction, whose runtime result is not claimed here. Full qualification of this unified source, publication, installed producer capture, compatible receiver Host/store and restart/restore durability remain unaccepted here. Host is independently versioned; first useful isolated candidate capture does not wait on Home access or Host deployment. Published/installed 0.105 and the accepted board binding stay unchanged. Earlier records and original failures/Unknown operations remain retained with no replay or reservation release.","supersedes":["7a134e7f1822183ed1c0ded720971539350feaaf92612761210cfc3ccdc55870"],"tags":["telemetry","passive","native","capture","attribution","delivery","corrections"],"title":"Passive native responses separate capture, attribution and delivery"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"citations":[{"path":"src/FS.GG.Coord.Core/TelemetryStore.fs","repository":"FS-GG/.github","revision":"b88c95a24f20e207c35971583fcffde50a312761","sha256":"8032321c251a03662111e9965845360eb8fd92cda0ce9e220116a81cf4a7e4e2"},{"path":"src/FS.GG.Coord.Cli/SkillTelemetryReaders.fs","repository":"FS-GG/.github","revision":"b88c95a24f20e207c35971583fcffde50a312761","sha256":"a510716436479424894fbd4787ee545c9b37e4090644066310b55b3ada439b7d"},{"path":"src/FS.GG.Coord.Cli/SkillTelemetryAdapter.fs","repository":"FS-GG/.github","revision":"b88c95a24f20e207c35971583fcffde50a312761","sha256":"74d61ae2ce23b4e6fafd940ccd924374d4a8060db0c65693b2b69e69d840b857"},{"path":"src/FS.GG.Coord.Cli/WorkspaceTelemetryApplication.fs","repository":"FS-GG/.github","revision":"b88c95a24f20e207c35971583fcffde50a312761","sha256":"7c1c889ceb8022f66650623016e6e71493b0eba6dc755272a62800095c8ef150"},{"path":"src/FS.GG.Coord.Cli/TelemetryStoreApplication.fs","repository":"FS-GG/.github","revision":"b88c95a24f20e207c35971583fcffde50a312761","sha256":"a5f58e3f9b1abe519642fb906c47fd04a1bf50481b49876680a87f208ab1ac86"},{"path":"src/FS.GG.Coord.Cli/TelemetryApplication.fs","repository":"FS-GG/.github","revision":"b88c95a24f20e207c35971583fcffde50a312761","sha256":"fdfa123c0175440004e239ebd49046684c687538cd02269504ac60c84245ff8b"}],"conflictsWith":[],"id":"contract/passive-native-usage-observations","kind":"contract","recordedAt":"2026-10-18T09:33:18Z","repository":"FS-GG/.github","schema":"fsgg.atlas/1","status":"recorded","summary":"At the cited prospective 0.106 source candidate, explicit selected Codex rollout files share the maintained strict native decoder, including recursive duplicate-property and strict UTF8 refusal, and project actual optional response counters through provider-usage-observation/1. Item, inventory and terminal attribution stay unknown/partial; these canonical-only facts never enter qualified item totals. Stable native thread/turn/response identities, a finite serialized producer index, private pending intent and existing immutable spool retain corrections and exact replay. Local enqueue/reporting make no receiver or App Server call. Initial capture-only setup skips credential presence and reports receiver unverified. Same-owner state cloning/migration is unsupported without original state/fence reconciliation; one selected association root is the supported ownership boundary.\n\nReceiver admission refuses cross-owner changes. A complete bounded drain census retains the earliest pending head for each structural scope/source/generation, fencing numeric successors behind uncertain or durable-but-not-applied receipts. Candidate scheduling rotates eligible independent heads and ordinary traffic through the existing sixteen-envelope quantum with one private advisory cursor of at most 256 bytes. The cursor advances under the configuration lock immediately before each actual head attempt, rather than skipping a whole selected quantum. Expired shared deadline/cancellation stops new head attempts; canceled lookup cannot proceed to Submit. Missing/invalid cursor state resets deterministic order. Cursor crashes affect ordering only; queued bytes, receipts and authority remain unchanged. No fixed elapsed-time or eight-pass service guarantee follows; transport timeouts and exact-source tests remain separate.\n\nUnsupported/rejected passive data remains pending. Full qualification of this unified source, publication, installed producer capture, compatible receiver Host/store and restart/restore durability remain unaccepted here. Host is independently versioned; first useful isolated candidate capture does not wait on Home access or Host deployment. Published/installed 0.105 and the accepted board binding stay unchanged. Earlier records and original failures/Unknown operations remain retained with no replay or reservation release.","supersedes":["7aa52373f2721dd76fc8eeb3d6061794f27ea8d11e96bcb1ff25a97994a77d5c"],"tags":["telemetry","passive","native","capture","attribution","delivery","corrections"],"title":"Passive native responses separate capture, attribution and delivery"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"citations":[{"path":"src/FS.GG.Coord.Core/TelemetryStore.fs","repository":"FS-GG/.github","revision":"96251bbe00685b62b13a7998599c2ee3f7b189dd","sha256":"964efe1ad5927a91c7ea164422d8217fb17a31a578ec7e5f26a8ef76bc320959"},{"path":"src/FS.GG.Coord.Cli/SkillTelemetryReaders.fs","repository":"FS-GG/.github","revision":"96251bbe00685b62b13a7998599c2ee3f7b189dd","sha256":"2da83e881c4d4a45f7502a6e2c9039eb322c207d66e58f0eb25940af01833102"},{"path":"src/FS.GG.Coord.Cli/SkillTelemetryAdapter.fs","repository":"FS-GG/.github","revision":"96251bbe00685b62b13a7998599c2ee3f7b189dd","sha256":"5b73ddfa9b95f81243f0c854e017092939bf3ec8aaa5534b4ce5f4e392f1f452"},{"path":"src/FS.GG.Coord.Cli/WorkspaceTelemetryApplication.fs","repository":"FS-GG/.github","revision":"96251bbe00685b62b13a7998599c2ee3f7b189dd","sha256":"67812f77da121ea0639e409bddb33ff390876f8bf3080f980e29d2fbd8050c20"},{"path":"src/FS.GG.Coord.Cli/TelemetryStoreApplication.fs","repository":"FS-GG/.github","revision":"96251bbe00685b62b13a7998599c2ee3f7b189dd","sha256":"4af499d349993e33609b25738e116f159431f9370275eca4ad08bea508e47397"},{"path":"src/FS.GG.Coord.Cli/TelemetryApplication.fs","repository":"FS-GG/.github","revision":"96251bbe00685b62b13a7998599c2ee3f7b189dd","sha256":"15e6d05562e0ff0d19a38129f39a6ad70d5eae8b071d2b92262dfbf877d8ac51"}],"conflictsWith":[],"id":"contract/passive-native-usage-observations","kind":"contract","recordedAt":"2026-10-18T08:39:36Z","repository":"FS-GG/.github","schema":"fsgg.atlas/1","status":"recorded","summary":"At the cited source candidate, explicit selected Codex rollout files share the maintained native decoder and project actual optional response counters through provider-usage-observation/1. Item, inventory and terminal attribution stay unknown/partial; these canonical-only facts never enter qualified item totals. Stable native thread/turn/response identities, a finite serialized producer index, private pending intent and existing immutable spool retain corrections and exact replay. Local enqueue/reporting make no receiver or App Server call. Existing remote setup has an explicit capture-only flag that skips only credential presence and reports receiver unverified. Same-owner state cloning/migration is unsupported without original state/fence reconciliation; the supported production route selects one association root. Receiver admission refuses cross-owner changes and numeric predecessor ordering holds later batches behind uncertain or durable-but-not-applied receipts; unsupported or rejected passive data remains pending. Source preparation alone establishes neither compiled qualification, installed producer capture, receiver compatibility nor restart/restore durability.","supersedes":[],"tags":["telemetry","passive","native","capture","attribution","delivery","corrections"],"title":"Passive native responses separate capture, attribution and delivery"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"citations":[{"path":".agents/skills/work-programme/SKILL.md","repository":"FS-GG/.github","revision":"2530ffc1e401da111b5b32a4f93c211bcc2c193e","sha256":"f5562f5010d96a74fe03fecd965f743a523cedd8fbfb0491482f84acba662230"}],"conflictsWith":[],"id":"platform/executable-qualification-and-final-assembly","kind":"lesson","recordedAt":"2026-10-18T09:36:18Z","repository":"FS-GG/.github","schema":"fsgg.atlas/1","status":"recorded","summary":"Before costly qualification, verify that the maintained runner actually invokes the changed assertions and that negative controls fail through that same route; compile success or a zero-test invocation does not establish executable coverage. Assemble compatible source, version, Atlas and delivery-closure changes and reconcile the intended final base before the expensive full run. Defer reporting-only followups when they would invalidate that qualification; this is not a blanket main freeze or permission to bypass required checks. Existing forward recovery retains unavailable original outcomes and reservations as Unknown without repeated unavailable-history searches. Source guidance delivery remains distinct from installed skill adoption and measured process benefit.","supersedes":[],"tags":["qualification","coverage","delivery","process","recovery"],"title":"Verify executable coverage early and assemble compatible changes before costly qualification"}
2 changes: 1 addition & 1 deletion .agents/skills/publishing-and-deployment/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Registry release inventory: 18 package-bearing contracts across 9 producers; 16
| `game` | `game-scene-adapter` | `0.17.0` | `0.17.0` | `game:0.17.0` | FS.GG.Game.Render package — Adapter (sim-state -> FS.GG.UI.Scene drawables) |
| `audio` | `fs-gg-audio` | `0.6.0` | `0.6.0` | `audio:0.6.0` | FS.GG.Audio.Core/.Host/.Engine/.Elmish/.WebBrowser public .fsi surfaces — AudioEffect vocabulary + IAudioBackend/IMixingBackend seam + mixing Engine + Audio.Cmd Elmish bridge + browser Web Audio host |
| `net` | `fs-gg-net` | `0.6.0` | `0.6.0` | `net:0.6.0` | FS.GG.Net.Core/.WebSocket/.WebSocket.Server/.Protobuf/.Grpc/.Elmish public .fsi surfaces — ITransport/IMessageChannel seam + Sequential/Multiplexed correlation + serve/ServerEcho + WebSocket client/server transport + Google.Protobuf/protobuf-net codecs + gRPC lifecycle bridge + Elmish Cmd/Sub |
| `github` | `coord-engine` | `0.105.0` | `0.105.0` | `github:0.105.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` | `coord-engine` | `0.106.0` | `0.105.0` | `github:0.105.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.5.0` | `0.5.0` | `github:0.5.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.16.0` | `0.16.0` | `github:0.16.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. |
Expand Down
Loading
Loading