acdream/src/AcDream.Plugins.MossTank
Erik f58e997b19 fix(vt): round 3 item 12 — cleanup pass (stale refs, silent swallows, comments)
Five small fixes bundled per the round's cleanup item:
- VtankNavRouteSerializer.cs's doc comment cited a "WriteBinaryNavBlob"
  method that no longer exists anywhere in the codebase (MetaEngine's
  embedded-navigation contract moved to the typed MetaAction.EmbeddedRoute
  NavigationSettings, saved/loaded through MetafSerializer.SaveNav/
  TryLoadNav, back at round 2 step B) — corrected to name the real
  mechanism.
- MossTankCommands.cs:274's comment referenced an "exports/nav/" mirror
  directory that stopped existing when route profiles cut over to writing
  their real .af file directly (round 2 steps 2-3) — corrected.
- docs/research/vtank-kb/07-meta-and-expressions.md section 5.2 row 6
  described the pre-cutover "MossTankMetaProfileStore.WriteLegacyExport
  convenience mirror" design; .af is now the SOLE authoritative Meta
  store, so a disabled rule's save refusal now blocks the profile itself
  — the row now says a disabled rule makes the profile file genuinely
  unsaveable, not that a mirror goes stale.
- The two bare `catch (FormatException) { }` blocks that silently dropped
  a corrupt monster-rule expression (one in SideCarDocument.Apply, reached
  from a corrupt side-car; one in LegacyCombatProfileDocument.Apply,
  reached during legacy-JSON migration) now log a warning via the host's
  IPluginLogger, threaded through as an optional parameter from every call
  site.
- VtankDatabase.Render()'s table-sort doc comment now states explicitly
  that StringComparer.Ordinal matching .NET Framework's SortedDictionary
  default order is confirmed only for the plain-ASCII table names VTank
  ships (AntiExtraBuffSpells, MyMonsters, Settings, …), not as a general
  claim for any string — comment only, no behavior change.

Added CorruptSideCarMonsterRuleIsLoggedNotSilentlySwallowed (FakeLogger
now captures Warn() calls via a new FakeHost.Logger property) pinning the
swallow-to-log fix.

Mutation: reverted MossTankProfileStore.cs to HEAD (keeping only the new
test) and ran it — failed with an empty Warnings collection, confirming
the silent-swallow bug before the fix.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 02:09:22 +02:00
..
Expressions feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
AcDream.Plugins.MossTank.csproj fix(vt): D CreateNew seeds from VTank's real defaultsettings.usd 2026-09-06 22:33:31 +02:00
AttackSpellCatalog.cs fix(vt): model UseArcs as VTank's real 3-way enum, not a collapsed bool 2026-09-06 21:47:03 +02:00
AutoAttackPower.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
BuffCasterPreparer.cs feat(mosstank): buff-caster preparer and single idle-peace arbiter — wield from the Items profile, enter magic/peace mode by itself 2026-09-06 19:02:18 +02:00
BuffPlan.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
BuffProfile.cs feat: regen buffs, wand aura, spellbook assess, indicator press flash 2026-08-20 20:38:28 +02:00
CombatController.cs fix(vt): I widen tDouble-declared distance fields from float to double 2026-09-06 23:27:09 +02:00
CombatFailureTracker.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
CombatItemDebuffPlanner.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
CombatSettings.cs fix(vt): I widen tDouble-declared distance fields from float to double 2026-09-06 23:27:09 +02:00
Crafting.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
DebuffScheduler.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
DispelController.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
FellowshipManager.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
GrenadeCatalog.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
InventoryMaintenance.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
ItemManaRecharge.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
Looting.cs fix(vt): I widen tDouble-declared distance fields from float to double 2026-09-06 23:27:09 +02:00
MacroIdleModeArbiter.cs feat(mosstank): buff-caster preparer and single idle-peace arbiter — wield from the Items profile, enter magic/peace mode by itself 2026-09-06 19:02:18 +02:00
Meta.cs fix(vt): B typed MetaAction.EmbeddedRoute replaces the binary nav blob 2026-09-06 22:22:39 +02:00
MetafSerializer.cs fix(vt): round 3 item 5 — jump-charge ceiling moves from storage load to execution 2026-09-07 01:21:50 +02:00
MetaViewManager.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
MonsterExpression.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
MonsterRules.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
mosstank.xml feat(vt): round 3 item 10 — Delete action for Meta/Route/Loot profiles 2026-09-07 01:57:29 +02:00
MossTankCommands.cs fix(vt): round 3 item 12 — cleanup pass (stale refs, silent swallows, comments) 2026-09-07 02:09:22 +02:00
MossTankLootProfileStore.cs feat(vt): round 3 item 10 — Delete action for Meta/Route/Loot profiles 2026-09-07 01:57:29 +02:00
MossTankMetaProfileStore.cs feat(vt): round 3 item 10 — Delete action for Meta/Route/Loot profiles 2026-09-07 01:57:29 +02:00
MossTankPanel.cs feat(vt): round 3 item 10 — Delete action for Meta/Route/Loot profiles 2026-09-07 01:57:29 +02:00
MossTankPlugin.cs chore(plugins): remove the Smoke gate plugin; MossTank shelf icon 0x06002C41 2026-09-06 16:49:17 +02:00
MossTankProfileRecovery.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
MossTankProfileStore.cs fix(vt): round 3 item 12 — cleanup pass (stale refs, silent swallows, comments) 2026-09-07 02:09:22 +02:00
MossTankRouteProfileStore.cs feat(vt): round 3 item 10 — Delete action for Meta/Route/Loot profiles 2026-09-07 01:57:29 +02:00
Navigation.cs fix(vt): round 3 item 5 — jump-charge ceiling moves from storage load to execution 2026-09-07 01:21:50 +02:00
packages.linux-x64.lock.json feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
packages.neutral.lock.json feat(plugins): MossTank — a self-buffing plugin, and the automation surface it needed 2026-08-20 16:22:28 +02:00
packages.win-x64.lock.json feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
PetAutomation.cs fix(vt): I widen tDouble-declared distance fields from float to double 2026-09-06 23:27:09 +02:00
PetDeviceCatalog.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
ProfileGiveController.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
SpellComponentPolicy.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
SpellId.g.cs feat(mosstank): buff trained skills and attributes, pick tiers by skill, manage mana 2026-08-20 18:09:02 +02:00
VitalPlan.cs fix(vt): I widen tDouble-declared distance fields from float to double 2026-09-06 23:27:09 +02:00
VitalRecharge.cs fix(vt): I widen tDouble-declared distance fields from float to double 2026-09-06 23:27:09 +02:00
VtankAmmunitionDatabase.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
VtankAmmunitionOptions.tsv feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
VtankCraftDatabase.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
VtankCraftRecipes.tsv feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
VtankDamageDatabase.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
VtankDefaultSettings.usd fix(vt): D CreateNew seeds from VTank's real defaultsettings.usd 2026-09-06 22:33:31 +02:00
VtankDefaultSettingsDatabase.cs fix(vt): D CreateNew seeds from VTank's real defaultsettings.usd 2026-09-06 22:33:31 +02:00
VtankLootProfileSerializer.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
VtankLootRequirementEvaluator.cs fix(vt): J five nits — argument order, sort order, dedup key readers 2026-09-06 23:37:01 +02:00
VtankMetaProfileSerializer.cs fix(vt): B typed MetaAction.EmbeddedRoute replaces the binary nav blob 2026-09-06 22:22:39 +02:00
VtankNavRouteSerializer.cs fix(vt): round 3 item 12 — cleanup pass (stale refs, silent swallows, comments) 2026-09-07 02:09:22 +02:00
VtankOptionCatalog.cs fix(vt): Capture() emits the declared eSettingValueType tag, not the CLR field type 2026-09-06 21:45:53 +02:00
VtankProfileDirectory.cs feat(vt): round 3 item 9 — loot cutover to real .utl (consistency with the other three) 2026-09-07 01:51:34 +02:00
VtankSettingsProfileSerializer.cs feat(vt): settings profiles cut over to real .usd files (round 2 step 1) 2026-09-07 00:12:41 +02:00
VtankUsdDocument.cs fix(vt): round 3 item 12 — cleanup pass (stale refs, silent swallows, comments) 2026-09-07 02:09:22 +02:00