From c493d659f62207303c74a5b8a78c878dd5b4f463 Mon Sep 17 00:00:00 2001 From: Andrea Bueide Date: Mon, 21 Sep 2026 20:29:33 -0500 Subject: [PATCH] fix: integrate Reflection and Deathknell rules into Kai 0.21.2 Pin Agni 6fad1183 so LeBlanc copies retain printed abilities, including Deathknell when combat or Temporary kills the Reflection. The rules regression tests and versioned blob change are in abysl/agni#1. --- Cargo.lock | 22 ++++----- Cargo.toml | 2 +- .../review/integration.md | 46 +++++++++++++++++++ 3 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 plans/reflection-deathknell/review/integration.md diff --git a/Cargo.lock b/Cargo.lock index d5be492..6d89a2b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,7 +132,7 @@ dependencies = [ [[package]] name = "agni-core" version = "0.1.0" -source = "git+https://github.com/abysl/agni#8765cdfd0840a56951f820014a7a65eee000c84e" +source = "git+https://github.com/abysl/agni#6fad1183b5cc244d6c75f55d6f49774262e3e2ec" dependencies = [ "serde", ] @@ -140,7 +140,7 @@ dependencies = [ [[package]] name = "agni-deck" version = "0.1.0" -source = "git+https://github.com/abysl/agni#8765cdfd0840a56951f820014a7a65eee000c84e" +source = "git+https://github.com/abysl/agni#6fad1183b5cc244d6c75f55d6f49774262e3e2ec" dependencies = [ "serde", ] @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "agni-engine-host" version = "0.1.0" -source = "git+https://github.com/abysl/agni#8765cdfd0840a56951f820014a7a65eee000c84e" +source = "git+https://github.com/abysl/agni#6fad1183b5cc244d6c75f55d6f49774262e3e2ec" dependencies = [ "agni-sim", "blake3", @@ -161,7 +161,7 @@ dependencies = [ [[package]] name = "agni-importers" version = "0.1.0" -source = "git+https://github.com/abysl/agni#8765cdfd0840a56951f820014a7a65eee000c84e" +source = "git+https://github.com/abysl/agni#6fad1183b5cc244d6c75f55d6f49774262e3e2ec" dependencies = [ "agni-deck", "agni-mtg", @@ -176,7 +176,7 @@ dependencies = [ [[package]] name = "agni-mtg" version = "0.1.0" -source = "git+https://github.com/abysl/agni#8765cdfd0840a56951f820014a7a65eee000c84e" +source = "git+https://github.com/abysl/agni#6fad1183b5cc244d6c75f55d6f49774262e3e2ec" dependencies = [ "agni-core", "agni-deck", @@ -186,7 +186,7 @@ dependencies = [ [[package]] name = "agni-net" version = "0.1.0" -source = "git+https://github.com/abysl/agni#8765cdfd0840a56951f820014a7a65eee000c84e" +source = "git+https://github.com/abysl/agni#6fad1183b5cc244d6c75f55d6f49774262e3e2ec" dependencies = [ "agni-core", "agni-sim", @@ -204,12 +204,12 @@ dependencies = [ [[package]] name = "agni-plugin-sdk" version = "0.1.0" -source = "git+https://github.com/abysl/agni#8765cdfd0840a56951f820014a7a65eee000c84e" +source = "git+https://github.com/abysl/agni#6fad1183b5cc244d6c75f55d6f49774262e3e2ec" [[package]] name = "agni-riftbound" version = "0.1.0" -source = "git+https://github.com/abysl/agni#8765cdfd0840a56951f820014a7a65eee000c84e" +source = "git+https://github.com/abysl/agni#6fad1183b5cc244d6c75f55d6f49774262e3e2ec" dependencies = [ "agni-core", "agni-deck", @@ -219,7 +219,7 @@ dependencies = [ [[package]] name = "agni-riftbound-turns" version = "0.1.0" -source = "git+https://github.com/abysl/agni#8765cdfd0840a56951f820014a7a65eee000c84e" +source = "git+https://github.com/abysl/agni#6fad1183b5cc244d6c75f55d6f49774262e3e2ec" dependencies = [ "agni-plugin-sdk", ] @@ -227,7 +227,7 @@ dependencies = [ [[package]] name = "agni-sim" version = "0.1.0" -source = "git+https://github.com/abysl/agni#8765cdfd0840a56951f820014a7a65eee000c84e" +source = "git+https://github.com/abysl/agni#6fad1183b5cc244d6c75f55d6f49774262e3e2ec" dependencies = [ "agni-core", "ciborium", @@ -4902,7 +4902,7 @@ dependencies = [ [[package]] name = "kai" -version = "0.21.1" +version = "0.21.2" dependencies = [ "agni-core", "agni-deck", diff --git a/Cargo.toml b/Cargo.toml index 256e7d8..83fe351 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kai" -version = "0.21.1" +version = "0.21.2" edition = "2021" default-run = "kai" diff --git a/plans/reflection-deathknell/review/integration.md b/plans/reflection-deathknell/review/integration.md new file mode 100644 index 0000000..7252e6a --- /dev/null +++ b/plans/reflection-deathknell/review/integration.md @@ -0,0 +1,46 @@ +# LeBlanc Reflection / Deathknell integration + +Kai 0.21.2 pins Agni 6fad1183, containing the fix and regression tests in +[abysl/agni#1](https://github.com/abysl/agni/pull/1). Merge that rules PR first. + +## Behavior + +LeBlanc's copy of Honest Broker and the original now each create one Gold when +both die in combat. Temporary kills the Reflection at its controller's +Beginning Phase before scoring, so the copied Deathknell also creates Gold. +Printed triggered and activated abilities survive their token source leaving +play; copied statics apply immediately. Rules, not Kai rendering code, own +this behavior. + +## Changes + +- Update all existing Agni Git pins together to the reviewed fix commit. +- Bump the application patch version from 0.21.1 to 0.21.2. +- Leave unrelated registry dependencies, the framework wire protocol, and UI + unchanged. + +Kai still builds the rules copy in Agni, not the extracted agni-rfb repository. +The new plugin is 0.9.1 with blob version 16. Existing supported states decode, +but old snapshots cannot reconstruct missing ability identity for a token +that had already disappeared. Existing matches retain their pinned module. + +## Verification + +- `bash ci/check.sh` passed with Python and native build dependencies supplied + by a Nix shell: ten dependency-free tests, connectivity-driver path checks, + and all-target headless compile against the exact updated Cargo.lock. +- Repository `treefmt --ci` passed. +- Agni's ten serialized Reflection regressions, full rules unit suite, + compatibility tests, plugin tests, fast checks, portable release build, and + hardening passed. See its PR for counts and an unrelated pre-existing broad + replay fixture failure. +- No manual GUI/network match, full Kai application test run, or Android build + was performed for this dependency-only application update. + +## Release + +Align the sibling Agni checkout using `ci/agni-revision.py` and rebuild/harden +bundled engine/game modules with the existing module-build helpers. No +compiled module or artwork is committed or published by this change. If the +Agni PR is squash-merged, update this lockfile to its final main commit before +merging/releasing Kai.