Repository navigation
Description
Parent Outcome: #5222
Work level: Delivery · Track: Active delivery · Intended Status: In review
Owner
The ALGO-01.2 worker (Claude), under Root/fdev. Root accepts.
Done when
In the producer chosen by ALGO-01.1, the library's first tranche:
- Harvested: A* with doors and plane handling (from FS.GG.RuneScape Bots), behaviour composition and arbitration primitives (from RS-01.3), and nearest-neighbour or spatial queries (from the knowledge base).
- Absorbed: the algorithms behind the existing grids, collision, line-drawing and visibility skills.
- New: at least two classic additions (for example JPS or MCTS).
Each implementation needs property tests, bench numbers and a Fable proof where marked portable. The tranche is published to nuget.org through the canonical release route. Original call sites migrate, or a follow-up is filed per site.
Current deliverable
In FS-GG/FS.GG.Algorithms:
- Merged:
- ADR-0002: record versioning hardening as accepted Decision 5 #2 (
e6e451b4, foundations F1-F4) - 208: rename fs-skia-ui-version/-bom → fs-gg-ui-version/-bom; ADR-0003 Accepted #3 (
f2804c4c, harvest 18-21) - registry: Feature 209 structurally gate-enforces fs-gg-ui-version / fs-gg-ui-bom coherence #4 (
043146d, N1) - P5 · Epic — Make the FsGgUiVersion staleness bug class structurally impossible #5 (
c599ea49, N2) - P5 · Replace sync-from-rendering.sh with Renovate (grouped FS.GG.UI.*) or repository_dispatch auto-PR #6 (
f235db23, DoorGrid and KdTree) - P5 · Commit packages.lock.json + CI --locked-mode in consumer repos; NU1603 → error #7 (
97a7d402,release.yml) - registry: register fsgg-contracts@1.0.0 (H2, epic #16 Pillar 2; #27) #28, [cross-repo] dist/dotnet/Directory.Build.props has an XML-invalid comment (
--inside <!-- -->) — breaks every adopter's build #29 and [cross-repo] dist/dotnet/Directory.Build.props: '--check' inside an XML comment breaks MSBuild (MSB4024) #31 - ci: reusable contract-coherence gate (H3, #18) #32 (
1d37bf83, the hosted bench baseline)
- ADR-0002: record versioning hardening as accepted Decision 5 #2 (
- Published: FS.GG.Algorithms 0.1.0, tag
v0.1.0at1d37bf83, on GitHub Packages and nuget.org.
In FS-GG/.github:
- Merged: atlas: record two Fable lessons from FS.GG.Algorithms (int32 multiply semantics, compile-gate exit status) (Refs #5224) #5230, registry: register FS.GG.Algorithms release.yml as an org publication writer (Refs #5224) #5231 and atlas: record the Fable for-loop limit lesson from FS.GG.Algorithms (Refs #5224) #5235.
- Draft, for Root's review: registry: register FS.GG.Algorithms and its published 0.1.0 (Refs FS-GG/.github#5224) #5243 (the registry reconcile).
The Done-when mapping is in the mapping comment on this issue.
Next action
- Root reviews and merges .github#5243.
- Root accepts this Delivery.
Blocked on
Nothing.
Acceptance evidence
-
Source: every PR above merged with its required checks passing. The checks cover FsCheck oracles, the Fable proof (a gate that can fail) and the independent Python oracle.
-
Bench: the hosted-runner baseline
bench/baselines/github-hosted-ubuntu24-2026-11-02-0.1.0.json(ci: reusable contract-coherence gate (H3, #18) #32), from three runs. It has a regression-only meaning. -
Publication:
- login-preflight run 41398600754;
- release run 41399115875 (verify, publish and readback);
- archive sha256
eea4b9468d81e0b92eb1c242ed7cbaeb03b9437b094b7038d87e696b0c615720; - the GitHub Packages copy is whole-file equal to the archive, and the nuget.org payload equals it;
- a clean consumer restored from nuget.org alone printed the same line on .NET and Fable.
Details are in the release comment on this issue.
-
Registry: .github#5243.
-
Follow-ups: 29 issues plus FS.GG.Algorithms#30 are filed and linked under ALGO-01 — Shared algorithms & optimization capability: F# library + product skill knowledge pack, available in product workspaces #5222. They cover the call-site migrations, the ranked N-items, N2b and F2 trigonometry.
Refs #5222
Activity
EHotwagner commentedon Nov 1, 2026
Root/fdev: ADR-0098 is accepted (#5227), so the blocker is cleared. Root created the public FS-GG/FS.GG.Algorithms repo. Owner dispatched: PR 1 is the bootstrap plus F1–F4, and PR 2 is the harvest re-implementations.
EHotwagner commentedon Nov 1, 2026
Owner progress on ALGO-01.2. These are pointers for recovery, not acceptance.
Repository: FS-GG/FS.GG.Algorithms, created by Root. It holds two staged PRs; nothing is merged or published.
907a8390966a5f4fOwed or held, with owners:
.githubBlockers.cyclesandLanes.partition, GovernancenearestRank, and RuneScape's arbiter (owner work).lsridentifier miscompile. I will capture them after merge, citing the mergedInternal/Bits.fs.Refs #5222
EHotwagner commentedon Nov 2, 2026
These are the next PRs under ALGO-01.2: the ADR-0098 §11 part 3 N-items, in ranked order. Each follows the §4 admission bar: FsCheck against an in-library oracle, a Fable proof, a bench (or owed under FS.GG.Algorithms#1), and a pack entry once ALGO-01.3 lands.
graph/topological-sort-cpm(Kahn, critical path)Graph.Sccdecision/behaviour-tree(with a blackboard)decision/utility-ai(IAUS)Fixeddecision/hfsmadversarial/negamax-alpha-beta-ttint32halves)adversarial/mcts-uct(with an ISMCTS mode)steering/reynoldsnet/prediction-reconciliation-interpolationnet/rollbacksystems/backoff-jitter-token-bucketsearch.mesh/navmesh-astar-funnelsearch.grid/lazy-theta-starsmooth; LOS-validsearch.grid/hpa-starspatial/kd-treeoptimization/csp-ac3(MRV, LCV)optimization/local-searchoptimization/hungarianprocgen/wfc-simple-tiledprocgen/opensimplex2-worleylearning/bandits-ucb1-thompsondecision/goap#5224's "at least two classic additions" are N1 and N2.
Also held under #5224:
.githubBlockers.cyclesandLanes.partition, GovernancenearestRank, and RuneScape's arbiter (owner work).State now:
e6e451b4.b1456799: 5/5 checks green, includingroutine-eligibility, and waiting for Root.Refs #5222
EHotwagner commentedon Nov 2, 2026
Owner progress on ALGO-01.2. These are pointers, not acceptance. The two classic additions are both in review:
graph/topological-sort-cpma7d9a655mainroutine-eligibilitydecision/behaviour-tree68a554d4routine-eligibilityruns after the retargetWhen both merge, #5224's "at least two classic additions" is met. Root decides whether to accept #5224 with these as follow-ups:
Refs #5222
EHotwagner commentedon Nov 2, 2026
Root/fdev: N1 is merged (FS.GG.Algorithms#4). N2 (#5) is approved and rebasing.
New ranked item N2b,
decision/behaviour-tree-reactive, from the #5 review:It is ranked immediately after N2, because game AI needs priority interrupts.
EHotwagner commentedon Nov 2, 2026
ALGO-01.2 Done-when mapping, as of 2026-11-02. "Fable" means a
LockstepExactgrade proven by the cross-runtime fixture corpus, gated byeng/fable-proof.sh(which has a negative control) and checked by an independent Python oracle.Harvested
search.grid/doors-and-planes(Search.Grid.DoorGrid)search.grid/doors-and-planes/corner-to-cornerdecision/behaviour-tree(N2)c599ea49decision/behaviour-tree/ticksdecision/priority-arbitrationf2804c4cspatial/kd-tree(also N14)spatial/kd-tree/nearest-1000-queriesNotes on the harvested rows:
SpatialGrid(uniform grid) is indexed in place, below.Absorbed
The algorithms behind the grids, collision, line-drawing and visibility skills are indexed in place, not extracted. This follows ADR-0098 §1 and §8 and the default for open question 1.
New (at least two classic additions)
graph/topological-sort-cpm043146dgraph/topological-sort-cpm/random-dagdecision/behaviour-treec599ea49spatial/kd-tree(bonus)Foundations and harvests the tranche builds on
e6e451b4. Fable ops 1-5 and 10.The other Done-when clauses
release.yml: writer lock, gates, pack once, GitHub Packages then nuget.org via OIDC, readback). Writer registration in .github#5231. Pending: login preflight, publication of 0.1.0, readback and the registry reconcileCall-site follow-ups:
Setfrontier to the F1 heap (exact pin, after release)PriorityQueue.githubBlockers.cycles.githubLanes.partitionnearestRankWorkModel.cycleDiagnosticsRanked follow-ups (filed, linked under #5222), in order:
Board enrollment of these 29 issues is a separate protected effect, left to Root.
Knowledge
Atlas
fable/int32-multiply-javascript-number-semanticsandfable/compile-gate-must-check-exit-statusare merged (.github#5230). A third Fable lesson, from #6, is queued for capture after #6 merges: a side-effectingforupper bound is re-evaluated every iteration in JavaScript and evaluated once on .NET.Refs #5222
EHotwagner commentedon Nov 2, 2026
Release boundary: the
login-preflightstopped on a missing credential. Nothing was pushed.dry-run, run 41378546040, on
mainat97a7d402: success.fable-proof: ok, andoracle checked 118 cases, 0 failed.FS.GG.Algorithms.0.1.0.nupkgdepends on['FSharp.Core']only and holds 26fable/files.fs-gg-algorithms-preflight-0.1.0-97a7d402…-41378546040.login-preflight, run 41378738441, on
mainat97a7d402: failure atNuGet login. Every push step was skipped.The gap: nuget.org has no Trusted Publishing policy for this repository. A nuget.org account holder for
Paradigma11, the user the workflow passes, must create a GitHub Actions trusted publishing policy for:FS-GG;FS.GG.Algorithms;release.yml;If a different nuget.org user should own it, set the repository or org secret
NUGET_USERto that user, who must also be the policy's creator.Once the policy exists: re-dispatch
login-preflight, then record the bench baseline when the quiet-host probe admits (it holds now, load5 9.66 against 3.0), then tagv0.1.0. No other credential is known to be missing. The GitHub Packages push uses the run'sGITHUB_TOKEN.Refs #5222
EHotwagner commentedon Nov 2, 2026
fsgg-dispatch: item=#5224 role=worker
FS.GG.Algorithms 0.1.0 is published, with readback complete
Every step ran once. There were no retries and no re-pack. No other FS.GG.Algorithms PR was open or merged during the publish.
mainat1d37bf8378e47a3b7f576cb52549ee971099d808: NuGet OIDC login succeeded, nothing was pushedv0.1.0(annotated objectc22b8467) at1d37bf83, the preflighted commitgithub=false nuget=falseFS.GG.Algorithms.0.1.0.nupkg, sha256eea4b9468d81e0b92eb1c242ed7cbaeb03b9437b094b7038d87e696b0c615720; artifactfs-gg-algorithms-release-0.1.0-1d37bf83…{"version":"0.1.0","commit":"1d37bf83…","archiveSha256":"eea4b946…","archiveRun":"41399115875","run":"41399115875","mode":"publish","githubPackagesPush":"success","nugetOrgPush":"success"}release-checks: GitHub Packages holds the archive's exact bytes(whole-file sha256).signature.p7sand core properties excluded). The flat container first served it after 8 bounded polls.heap=bdac mul=-2147483648 div=2147483647 sqrt=11863283 xo=11520 seed=633975598 path=10/18Independent re-read from fdev:
ORIGINAL_SHA256.a7d2f475…) has a payload equal to the archive and adds only.signature.p7s.pop=1,2 asm=0.1.0.0).read:packagesand the request returned HTTP 403. That equality rests on the run's readback job, which haspackages: read.Registry: the reconcile is in draft PR #5243. It contains:
algorithmsrepo row and contract at 0.1.0, withconsumers: [];FS.GG.Algorithmspackage mapping for feed coherence;outside-fabricroster exemption until the skills producer lands (ADR-0098 §7);Root reviews and merges it.
Capture gap: Atlas
github/nuget-trusted-publishing-policy-scoperecords a sixteen-policy owner readout that does not include the new FS.GG.Algorithms policy. Owner: Root. As reported, that policy's glob is*with "Push new packages and package versions", which is broader than the narrowed per-package globs of the other policies. Narrowing it toFS.GG.AlgorithmsandFS.GG.Algorithms.*is Root's choice.Merge hold: the publish is complete, so the merge hold on FS.GG.Algorithms can be released.
EHotwagner commentedon Nov 2, 2026
Root/fdev acceptance of ALGO-01.2 (the library's first tranche). Every Done-when item is met:
Harvested:
Search.Grid.DoorGrid, Algorithms#6.Spatial.KdTree, P5 · Replace sync-from-rendering.sh with Renovate (grouped FS.GG.UI.*) or repository_dispatch auto-PR #6.All are clean re-implementations under the ALGO-01.1 — ADR: ownership, taxonomy, knowledge-pack format and product-workspace distribution #5223 ruling.
Absorbed: per ADR-0098, the grids, collision, line-drawing and visibility algorithms stay in Game.Core and are indexed by the pack (ALGO-01.3 — fs-gg-algorithms product skill + knowledge pack, materialized into fs-gg-fable-game workspaces #5225). Game's owed evidence is FS.GG.Game#804.
New: topological sort with CPM (registry: Feature 209 structurally gate-enforces fs-gg-ui-version / fs-gg-ui-bom coherence #4), the behaviour tree (P5 · Epic — Make the FsGgUiVersion staleness bug class structurally impossible #5) and reactive composites (build: api-breaking-change-gate in shared-build-config (H3, #20) #33).
Quality:
Published: FS.GG.Algorithms 0.1.0 is on nuget.org through the canonical route.
v0.1.0, and GitHub Packages holds the exact bytes.Call sites: a follow-up per site (Game#803, RuneScape#27 and registry: register fsgg-contracts@1.0.0 (H2, epic #16 Pillar 2; #27) #28, FourD#64, .github#5232 and Coord.Core: migrate Lanes.partition's union-find onto FS.GG.Algorithms Graph.UnionFind #5233, Governance#483, SDD#1160), now unblocked and moving to Ready.
Remaining ranked items (N3–N21, F2b, #34, #35) are enrolled follow-ups. Closing as completed.